如何将用户输入与自定义wordpress数据库表进行比较

rryofs0p  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(259)

我已经创建了一个插件,在数据库中创建了一个表,我也在该表中插入了一些值。该表只有两个列:id和auth\ u code,id列是主键和autoincrement,因此需要考虑的唯一列是auth\ u code列。表创建和数据插入工作正常。我已经添加了一个快捷代码,我想让用户在一个字段中输入一个代码(在前端),我的插件会将它与自定义表中的auth\ u code字段进行比较,并返回true或false。auth\u code列的值都是唯一的,因此应该只有一个匹配项或没有匹配项。我的快捷代码在这里

<?php

add_shortcode( 'prod_auth', 'product_auth_shortcode' );

function product_auth_shortcode(){

global $wpdb;

$table_name = $wpdb->prefix.'wpa_product_auth';

if(isset($_POST['submit'])){

    $prod_auth = $_POST['auth_code'];

    $check = $wpdb->get_col("SELECT * FROM  $table_name WHERE auht_code = '$prod_auth'");

    if($check->num_rows == 1){
        echo "<script>alert('Auth')</script>";
    }else{
        echo "<script>alert('Not Auth')</script>";
    }

}

?>
<form class="form-inline" method="post">
  <div class="form-group mb-2">

    <input type="text" readonly class="form-control-plaintext" value="Please 
Enter Your Unique Code">
  </div>
  <div class="form-group mx-sm-3 mb-2">
    <label for="UniqueCode" class="sr-only">Enter Your Unique Code</label>
    <input type="text" class="form-control" id="inputPassword2" placeholder="" name="auth_code">
  </div>

  <button type="submit" class="btn btn-primary mb-2">Authenticate</button>
</form>
<?php

}

我已经在我的一个页面上添加了这个短代码,表单显示在那里,但是没有返回任何结果。在此方面的任何帮助都将不胜感激。谢谢

dzhpxtsq

dzhpxtsq1#

筛选器中列的名称中有输入错误。应该是的 auth_code 而不是 auht_code ;

$prepared_statement = $wpdb->prepare(
    "SELECT auth_code FROM {$table_name} WHERE auth_code = %s", $prod_auth );

$values = $wpdb->get_col( $prepared_statement );

相关问题