0
PDO更新查詢:與我要執行這樣的查詢括號
UPDATE users SET online_time = (online_time + 50) WHERE ID = 1
我有一個問題,因爲online_time不更新,它是由0 取代在mysqli的一切都OK。 這是我在數據庫類更新功能的代碼(這是從互聯網上,而不是我的工作):
public function update($table, $data, $where)
{
ksort($data);
$fieldDetails = null;
foreach($data as $key => $value){
$fieldDetails .= "$key=:$key, ";
}
$fieldDetails = rtrim($fieldDetails, ', ');
$sth = $this->prepare("UPDATE $table SET $fieldDetails WHERE $where");
foreach ($data as $key => $value){
$sth->bindValue(":$key", $value);
}
$sth->execute();
}
和代碼我試圖運行:
$set = ['online_time' => "(online_time + $t)"];
$where = 'ID = '. $id;
$this->db->update('users', $set, $where);
這可能是什麼問題更新功能,但我不知道什麼:/
你收到任何錯誤? – hassan
但是你會遇到一個問題,因爲在你的foreach循環中:''$ key =:$ key,「'所以在添加你的'$ set'變量後,它會是這樣的:'online_time = :(online_time + $ t )' – hassan
'$ sth = $ this-> prepare(「UPDATE $ table SET $ fieldDetails WHERE $ where」);'這看起來很危險 –