gpt4 book ai didi

php - pdo 没有正确绑定(bind)参数

转载 作者:行者123 更新时间:2023-11-29 07:21:06 25 4
gpt4 key购买 nike

我已经在这个问题上坚持了大约 3 天,并向多个人询问了这个问题,但似乎没有人能回答我为什么这不起作用。我无法弄清楚为什么它们没有绑定(bind),因为绑定(bind)适用于 select 语句,但不适用于更新。我知道一个事实是$sessCheck['userid']$sessCheck['hwid']正在设置,因为我已经将它们打印出来以检查它们是否为空或其他内容。

来自 slim 的入站请求

{"userid": "1000","hwid":"TESTING"}

功能

function updateHWID(){
$request = Slim::getInstance()->request();
//$bsreq = utf8_encode();
$sessCheck = json_decode($request->getBody(), true, 9 );

$db = getConnection();
$sql = "SELECT userid,hwID FROM accounts WHERE userid = :userid";
$stuff = $db->prepare($sql);
$stuff->bindParam("userid", $sessCheck['userid']);
$stuff->execute();
$db = null;

$rows = $stuff->fetch(PDO::FETCH_ASSOC);


if ($rows['hwID'] != $sessCheck['hwid']) {
$sql2 = "UPDATE accounts SET hwID=':hwid' WHERE userID = ':userid';";

try {
$db2 = getConnection();
$stmt = $db2->prepare($sql2);
//these two param's are not binding
$stmt->bindParam("userid", $sessCheck['userid']);
$stmt->bindParam("hwid", $sessCheck['hwid']);
$stmt->execute();
//$rt = $stmt->fetch(PDO::FETCH_ASSOC);
//$stmt->debugDumpParams();
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}

}

这是sql日志中传入的结果

      1372 Query     UPDATE accounts SET hwID=':hwid' WHERE userID = ':userid'

我也尝试过这个以及使用它也不起作用

$stmt->bindParam(":userid", $sessCheck['userid']);
$stmt->bindParam(":hwid", $sessCheck['hwid']);

然后我也尝试了这个,但没有成功

$stmt = $db2->prepare("UPDATE accounts SET hwID='?' WHERE userID = '?';");
$stmt->bindParam(1, $sessCheck['hwid'], PDO::PARAM_STR);
$stmt->bindParam(2, $sessCheck['userid'], PDO::PARAM_INT);

最佳答案

将绑定(bind)的参数名称从单引号中取出。

所以:
$sql2 = "更新帐户 SET hwID=:hwid WHERE userID = :userid;";

关于php - pdo 没有正确绑定(bind)参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36131974/

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