【发布时间】:2012-08-18 15:55:56
【问题描述】:
我正在学习 PDO,发现很难确保我的语句正常工作。我有一个 PHP 函数,它通过简单地将数字 1 添加到总数中来更新我的数据库。
function add_rating($place_id,$rating_id) {
//make $db accessible inside the function
global $db;
// query v1
$sql = "UPDATE places_ratings SET ? +1 WHERE place_id=?";
$q = $db->prepare($sql);
$q->execute(array($rating_id,$place_id));
}
我尝试了这种变体,但我都无法开始工作。我不知道我是不是用错了问号。我关注了this guide 和previous SO question。最后我尝试了另一种第一次奏效的方法,所以我很想重新使用它,因为它看起来也简单多了。
function add_rating($place_id,$rating_id) {
//make $db accessible inside the function
global $db;
// query v2
$query = "UPDATE places_ratings SET $rating_id = ($rating_id +1) WHERE place_id = $place_id";
$update = $db->query($query);
}
我的问题是:哪种说法更好/更安全?其次,我对带有问号的第一个版本做错了什么?谢谢...
【问题讨论】: