gpt4 book ai didi

php - 使用单引号时出现 PDO 错误

转载 作者:太空宇宙 更新时间:2023-11-03 12:32:38 25 4
gpt4 key购买 nike

所以我多年来一直在寻找这个问题的答案,但找不到解决方案。

错误是:

Invalid parameter number: number of bound variables does not match number of tokens

当然我知道这个错误是什么意思,但我不明白为什么只有当我用单引号括起某些内容时它才会抛出它。

这是我的代码:

$query = "UPDATE $DbTableName SET name=':name' WHERE id=:Id";
$result = $dbc->prepare($query); //Prepare query

$values = array('Id' => $Id, 'name' => $name); //Prepare values
$result->execute($values); //Execute Query

查看 :name 周围的单引号

如果我删除这些引号,则不会出现 PDO 错误,但会出现 MySQL 错误,因为字符串需要用单引号引起来。

我该如何解决这个问题?

将名称设置为不带引号的 bob 时出现 MySQL 错误:

#1054 - Unknown column 'bob' in 'field list'

提前致谢

最佳答案

您需要指定 param 确实是一个字符串,使用 PHP 手册中的示例:

$sth = $dbh->prepare('SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR);

从技术上讲,我相信 execute 对类型做出最佳猜测判断,但是通过使用 bindParambindValue 您可以明确说明类型.

关于php - 使用单引号时出现 PDO 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14658411/

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