gpt4 book ai didi

php - 无法从结构化 SQL 语句获取 COUNT(*) 结果

转载 作者:行者123 更新时间:2023-11-29 19:31:11 24 4
gpt4 key购买 nike

我一直在编写一条 SQL 语句,用于检查数据库以查看 24 小时内是否为特定 uuid 为特定 qr_id 留下了反馈。原始代码按预期工作,但显然为了更安全,我想将代码更改为结构化 SQL 语句。

$uuid = "DB8962A3-BC7A-481F-9D7E-C1FC7F74E50E";
$qrid = "2147483647";
$query = sprintf("SELECT COUNT(*) FROM `feedback` WHERE uuid = '%s' AND qr_id = '%s' AND created_on > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))", mysql_real_escape_string($uuid), $qrid);
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
$size = $row['COUNT(*)'];
if ($size > 0){
echo 'Unable to leave feedback as user has left feedback for this employee within 24 hours.';
}else{
echo 'User has not left feedback for this employee within 24 hours, continue.';
}

上面的代码工作得很好,如果计数大于 0,则会停止用户发帖。这是我将其转换为结构化 SQL 语句的尝试:

$stmt = $this->conn->prepare("SELECT COUNT(*) FROM `feedback` WHERE uuid = ? AND qr_id = ? AND created_on > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))");
$stmt->bind_param('si', $uuid, $qrID);
$result = $stmt->execute();
$size = $result['COUNT(*)'];
$stmt->close();
if ($size = 0){
// do post, return true
return true;
}else{
return false;
// do not post, return false
}

我尝试打印结果值,它始终为 1,并且尝试回显 $size 变量不会返回任何内容。

最佳答案

您需要获取结果,请尝试以下操作:

$stmt->bind_param('si', $uuid, $qrID);
$stmt->execute();
//here you bind result to variable $size
$stmt->bind_result($size);
$stmt->fetch()
$stmt->close();
if ($size == 0){
// do post, return true
return true;
}else{
return false;
// do not post, return false
}

关于php - 无法从结构化 SQL 语句获取 COUNT(*) 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41772542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com