SQL总是返回存在的记录(MYSQLI,PHP)
下面的代码应该检查数据库中是否存在用户,但当运行查询时,总是返回true。SQL总是返回存在的记录(MYSQLI,PHP),php,sql,mysqli,Php,Sql,Mysqli,下面的代码应该检查数据库中是否存在用户,但当运行查询时,总是返回true。 代码: function checkifexists($username, $email){ require __DIR__ . '/includes/dbcon.php'; $query = $conn->prepare("SELECT username FROM `users` WHERE `username` = ? or `email` = ?"); $query->bin
代码:
function checkifexists($username, $email){
require __DIR__ . '/includes/dbcon.php';
$query = $conn->prepare("SELECT username FROM `users` WHERE `username` = ? or `email` = ?");
$query->bind_param("ss", $username, $email);
$query->execute();
if(!$query->num_rows){
//User or Email Already Exists.
$query->close();
//header("Location: Register?error=inuse");
echo "inuse";
die();
}
else {
var_dump($query);
$query->close();
regacc();
}
}
如何检查用户是否存在;没错
任何帮助都将不胜感激。谢谢事先。您需要在调用
$query->num\u行之前调用。
。现在它没有使用正确的结果集,所以它总是返回0,所以!0
始终为真
当且仅当您希望缓冲客户端的完整结果集时,必须为成功生成结果集(选择、显示、描述、解释)的每个查询调用mysqli_stmt_store_result(),以便后续的mysqli_stmt_fetch()调用返回缓冲数据
作为旁注,请尝试在这里更清楚地说明代码的意图。如果($query->num_rows>0),请使用if
,而不是依赖于值的“真实性”
$query = $conn->prepare("SELECT username FROM `users` WHERE `username` = ? or `email` = ?");
$query->bind_param("ss", $username, $email);
$query->execute();
$query->store_result();
if(!$query->num_rows) {