【发布时间】:2021-08-03 07:55:42
【问题描述】:
我正在尝试从 SQL 中获取计数:
function sqlCheckUserExists()
{
$sql = "SELECT COUNT(*) FROM users WHERE email = ? LIMIT 1;";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $email);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($count);
if($count === 1 OR $count > 0)
{
return true;
}
elseif($count === 0)
{
return false;
}
$stmt->close();
}
然后调用它:
if (sqlCheckUserExists) {
echo json_encode(array("statusCode"=>201));
} else {
echo json_encode(array("statusCode"=>202));
}
查询很好。我只想知道邮件是否已经在表格中。
作为响应,我总是得到“statusCode:201”=“0”或“false”。
【问题讨论】:
-
if($count === 1 OR $count > 0)与if($count > 0)相同 -
仅供参考,您永远不会执行
$stmt->close(),因为您同时返回if和else if。你应该在if之前这样做。 -
你永远不会调用函数:
if (sqlCheckUserExists)应该是if (sqlCheckUserExists()) -
你在哪里设置变量
$email?也许它应该是一个函数参数? -
你在哪里设置变量
$conn?那也应该是函数参数,或者使用global $conn;