gpt4 book ai didi

php - PDO 语句的参数编号无效

转载 作者:行者123 更新时间:2023-12-01 00:38:13 24 4
gpt4 key购买 nike

下一个代码给我一个错误SQLSTATE[HY093]: Invalid parameter number

$sql = "INSERT INTO `users` (`id`, `date_install`, `date_ping`, `cc`, `uv`, `pid`, `pv`, `aff_id`, `sub_id`, `channel`, `cid`, `os`, `av`, `db`) VALUES (:id, :date_install, now(), :country, :updaterVersion, :productId, :productVersion, :affiliateId, :subId, :channel, :commandId, :os, :av, :defaultBrowser) "
. "ON DUPLICATE KEY UPDATE `date_install` = :date_install, `date_ping` = now(), `cc` = :country, `uv` = :updaterVersion, `pid` = :productId, `pv` = :productVersion, `aff_id` = :affiliateId, `sub_id` = :subId, `channel` = :channel, `cid` = :commandId, `os` = :os, `av` = :av, `db` = :defaultBrowser ";

$statement = $database->prepare($sql);
$statement->bindValue(":id", $user->id, PDO::PARAM_INT);
$statement->bindValue(":date_install", $user->date_install, PDO::PARAM_STR);
$statement->bindValue(":country", $user->cc, PDO::PARAM_STR);
$statement->bindValue(":updaterVersion", $user->uv, PDO::PARAM_INT);
$statement->bindValue(":productId", $user->pid, PDO::PARAM_INT);
$statement->bindValue(":productVersion", $user->pv, PDO::PARAM_INT);
$statement->bindValue(":affiliateId", $user->aff_id, PDO::PARAM_INT);
$statement->bindValue(":subId", $user->sub_id, PDO::PARAM_INT);
$statement->bindValue(":channel", $user->channel, PDO::PARAM_STR);
$statement->bindValue(":commandId", $user->cid, PDO::PARAM_INT);
$statement->bindValue(":os", $user->os, PDO::PARAM_STR);
$statement->bindValue(":av", $user->av, PDO::PARAM_STR);
$statement->bindValue(":defaultBrowser", $user->db, PDO::PARAM_STR);

$statement->execute();

我不知道出了什么问题,如果我将 SQL 复制/粘贴到控制台并手动替换所有值,一切正常。另外,如果我注释掉 ON DUPLICATE KEY... 部分,也可以。

最佳答案

如果emulation mode is turned off对于您的 PDO 实例,您将无法在查询中多次使用相同的占位符名称。

此外,对于 ON DUPLICATE 也没有必要,因为您始终可以使用 VALUES 运算符从 VALUES 子句中获取值:

ON DUPLICATE KEY UPDATE `date_install` = VALUES(date_install), ...

关于php - PDO 语句的参数编号无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42363729/

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