gpt4 book ai didi

php 检查数据库中的行是否存在总是返回 true

转载 作者:行者123 更新时间:2023-11-29 02:46:45 25 4
gpt4 key购买 nike

我想根据“id”和“devicetoken”两列检查数据库表中是否存在条目。

作为这个函数的结果,我总是得到 true,但是在数据库中,没有这样的条目。这怎么可能?

$selectSQL = "SELECT id from devices where devicetoken = ? and id = ?";
echo "token:".$utoken."\n";
echo "id:".$uid."\n";
$resultId = -33;
if ($stmt->prepare($selectSQL)) {
$stmt->bind_param('ii', $utoken, $uid);
$stmt->execute();
$stmt->bind_result($resultId);
$stmt->fetch();
$stmt->close();
echo $resultId;
if ($resultId == $uid) {
echo "AA";
return true;
} else {
echo "BB";
return false;
}
}

当我使用此参数运行页面时:

token:asdf

id:2

我得到打印的输出 2AA,因为 $resultId == $uid。但这怎么可能呢? select 语句清楚地过滤了两个 where 条件,并且没有诸如 token = asdf 和 id = 2 这样的条目。id = 2 的真实条目具有标记值 = 'b'。

这是我的表格的截图:

mysql table

如果我在 Mysql Workbench 上运行代码

SELECT id from devices where devicetoken = 'b2' and id = 2

我没有得到任何错误和 0 个结果,这是正确的。但是从 PHP 页面得到错误的结果。这怎么可能?

最佳答案

看到 OP 想要一个答案:

正如我在评论中所述, token 是一个字符串,您正在为绑定(bind)中的“整数”传递 i

对于字符串应该是“s”。

bind_param('si'

关于php 检查数据库中的行是否存在总是返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41122971/

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