【发布时间】:2017-10-17 20:01:01
【问题描述】:
我有一条不适合我的 MySQL 语句。我检查了代码的几个部分,但它一直返回 null 作为结果。我还尝试替换 WHERE enc_mail = AND enc_public_id=" to "WHERE 1" 以检查变量是否有问题,但事实并非如此。我也没有收到错误。
$connect_db = mysqli_connect("myhost","my username","my password","my db");
$mail_id = crypto(mysqli_real_escape_string($connect_db,htmlspecialchars($_GET['em'])),'e');
$public_id = mysqli_real_escape_string($connect_db,htmlspecialchars($_GET['public']));
$active_true = true;
$check = $connect_db->prepare("SELECT active FROM enc_data WHERE enc_mail=? AND enc_pub_id=?");
$check->bind_param("ss", $mail_id, $public_id);
$active = $check->execute();
if($active[0]=="" ){
//It goes here once the code is run
}
【问题讨论】:
-
我没有看到你在这里检查错误。
-
绝对没有理由同时使用
real_escape_string()和参数化变量。参数化变量本身就足够了 :) 这也包括任何其他字符串清理,如果您使用参数化变量,则没有必要。摆脱所有这些肯定会有助于代码的可读性。 -
@garethpower 请重新添加错误记录部分,以便我们查看您如何检查错误
-
也
execute()返回真/假 -
一,秒我得到错误记录。看我让 $result = $stmt->execute() 在另一个页面上并且 $result['data'] 从那里正常工作
标签: php mysql mysqli prepared-statement