php pdo 占位符,php – PDO更新不替换预准备语句中的占位符

我试图用以下代码更新表.如果我更改WHERE temp_booking_id =’:temp_booking_id’“);要使用实际的当前会话temp_id,查询将运行,但将占位符添加到表中(例如:签出)作为值.

$data保持正确的值,但不替换占位符.

一直盯着这几个小时,不能为我的生活解决问题所在,并环顾四周,但没有找到解决方案.

PDOStatement:errorInfo()正在返回

PDOStatement::errorInfo(): Array ( [0] => 00000 )

如果我删除占位符周围的引号,它将返回

PDOStatement::errorInfo(): Array ( [0] => HY093 )

有任何想法吗?

try {

$data = array(

'temp_booking_id' => $_SESSION['temp_id'],

'check_in' => $in,

'check_out' => $out,

'adults' => $a,

'children1' => $c1,

'children2' => $c2,

'infants' => $i,

'cots' => $c,

'promo_code' => $pc

);

$STH = $DBH->prepare("UPDATE b_temp_booking

SET check_in = ':check_in',

check_out = ':check_out',

adults = ':adults',

children1 = ':children1',

children2 = ':children2',

infants = ':infants',

cots = ':cots',

promo_code = ':promo_code'

WHERE temp_booking_id = ':temp_booking_id'");

$STH->execute($data);

echo "\nPDOStatement::errorInfo():\n";

$arr = $STH->errorInfo();

print_r($arr);

} catch(PDOException $e) {

echo 'ERROR: ' . $e->getMessage();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值