gpt4 book ai didi

如果我使用冒号,PHP 绑定(bind)参数数据库调用参数数量错误

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

        $sth = $dbh->prepare("SELECT users.userID,fname,lname,status FROM users INNER JOIN friends ON users.userID = friends.friendID WHERE friends.userID = ? AND ((friends.status LIKE 'group%' OR friends.status = 'friends') OR (users.status = '?') OR (users.userID = ?)) ORDER BY friends.status,lname,fname ASC");
$sth->execute(array($_SESSION['userID'],'sub:'.$_SESSION['userID'],$_SESSION['userID']));

在上面的代码中,您可以看到我有一个带有查询的准备语句。在该查询中,我对变量替换有三个问号。在执行语句中,我提供了变量。最后我检查了一下,我可以数到三,但 PHP 不同意。对于执行所在的行,我不断收到“无效参数编号:绑定(bind)变量的数量与标记数量不匹配”。

我认为它可能与第二个参数中的冒号有关,所以我把它拿出来,但它做了同样的事情。我什至拉出了字符串连接,只留下了 userID,我得到了同样的结果。

要么已经很晚了,要么这里发生了一些巫术。有什么见解吗?

最佳答案

这个'?'不是一个占位符,它是一个字面上的问号。占位符不会被引用。现在,您有两个占位符,并且尝试绑定(bind)三个值。

所以尝试一下:

$sth = $dbh->prepare("SELECT users.userID,fname,lname,status FROM users INNER JOIN friends ON users.userID = friends.friendID WHERE friends.userID = ? AND ((friends.status LIKE 'group%' OR friends.status = 'friends') OR (users.status = ?) OR (users.userID = ?)) ORDER BY friends.status,lname,fname ASC");

关于如果我使用冒号,PHP 绑定(bind)参数数据库调用参数数量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38548317/

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