1
我無法弄清楚這一點。這是我的變量:PDO聲明問題,當我使用bindParam時查詢不起作用
$id = 1;
$exp = 1;
$energy = 1;
$payout = rand (100 , 300);
這裏是查詢
$sql = 'update players set ' .
'exp = exp + :exp, ' .
'energy = energy - :energy, ' .
'cash = cash + :cash ' .
'where id = :id';
爲字符串這方面的一個例子是:
update players set exp = exp + 1, energy = energy - 1, cash = cash + 170 where id = '1'
當我輸入這phpmyadmin
它的工作原理。這就是爲什麼我不明白爲什麼這不起作用:
try
{
$stmt = $this->db->prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->bindParam(':exp', $exp, PDO::PARAM_INT);
$stmt->bindParam(':energy', $energy, PDO::PARAM_INT);
$stmt->bindParam(':cash', $payout, PDO::PARAM_INT);
$result = $stmt->execute();
$stmt->closeCursor();
}
catch (Exception $e)
{
die ($e->getMessage());
}
if (!$result)
{
trigger_error("mysql: " . $sql, E_USER_ERROR);
$data = array("message" => T_gettext("Something went wrong."));
return json_encode($data);
}
這將導致一個錯誤$result
=有毛病查詢。
我做錯了什麼? +我如何從PDO獲得更詳細的mysql錯誤消息?
重新錯誤信息,請嘗試[?拿捏錯誤消息出來的PDO(http://stackoverflow.com/q/3726505) – 2011-05-15 19:15:39
此外,你不應該抓到Exception,而是PDOException類。 – 2011-05-15 19:25:35