2013/04/14

Pear DB 鬼打牆

前幾天改別人的程式時,用到 Pear DB 的 prepare / binding query 來修改資料:
$sql = "update log set 'enable' = ? where 'size' != 100";
$db->query($sql, array('true') );

但是程式執行卻一直噴錯誤訊息:
DB Error: mismatch

奇怪,問號只有一個啊,語法丟到 PhpMyAdmin 也可以正常執行,但為什麼會錯!?

搞了半天,原來 Pear DB 支援的 placeholder 有三種:

  • ?
  • !
  • &


好死不死 SQL 後半段有個「!=」,所以就 GG 了。這個 error 跟之前全形空白真的有拼 ....。

沒有留言:

張貼留言