php - 准备好的语句总是在 if 上返回 0
问题描述
我正在尝试从 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”。
解决方案
你错过了 fetch()
$stmt->fetch();
还有 $conn
function sqlCheckUserExists($conn)
{
$sql = "SELECT COUNT(*) FROM users WHERE email = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $email);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($count);
$stmt->fetch();
$stmt->close(); // close it before return
return $count > 0; // returns true if count is more than zero else false
}
if (sqlCheckUserExists($conn)) {
}
推荐阅读
- python - 删除字典中的空值
- serial-port - Raspberry Pi 4 上 Ubuntu 20.04 上的 GPS 串行控制台问题
- javascript - 如何为 html 和 Js 游戏做倾斜控制
- regex - MongoDB“查找”-如何查询包含字符串、不区分大小写和区分变音符号的字段的文档?
- spring-batch - Spring Batch 远程分区:stepexecution 处理程序的序列化问题
- javascript - React Native 清除间隔不停止间隔
- regex - 在多个 HTML 文件中查找和替换变量
- react-native - 将下拉箭头添加到 react-native-modal-selector
- python - 如何将数组保存为图像
- laravel - vue.js nuxt.js 如何在axios中调用多个api url调用