我读过这篇文章:Issues incrementing a field in MySQL/PHP with prepared statements但没有找到我的问题的答案。
PDOStatement Object
(
[queryString] => UPDATE user_alerts SET notif = ? + 2 WHERE ( user_id = ? )
)
$stmt->execute( array( 'notif', '1' ) );
据我所知,这一切都是正确的。
执行上述代码时,它将notif列设置为与notif列的值无关的2。就好像sql的读取结果是
SET notif = 2
而不是SET notif = notif + 2
我还没搞清楚,真的很感谢你的帮助!
最佳答案
$sql = 'UPDATE user_alerts SET notif = notif + 2 WHERE ( user_id = :userid )';
$prepStatement = $pdo->prepare( $sql );
$prepStatement->execute(array(':userid' => $userid));
不能将列名绑定到准备好的语句。