我在使用PDO編寫的PHP查詢中遇到問題。代碼:PHP PDO準備的查詢拒絕正確執行 - 轉義問題?
$link = new PDO("mysql:dbname=$dbname;host=127.0.0.1",$username,$password);
$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = $link->prepare("SELECT locality_name FROM :passedday GROUP BY locality_name ORDER BY locality_name DESC");
$query->bindParam(":passedday",$day); //Where day is, well, a day passed to the script elsewhere
$query->execute();
$result = $query->fetchAll();
$link = null;
//Do things with the $result.
我得到的錯誤信息是:
SQLSTATE [42000]:語法錯誤或訪問衝突:1064您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第1行''05_26_09'GROUP BY locality_name ORDER BY locality_name DESC'處使用正確的語法。
當我直接在服務器上執行查詢時,結果集沒有任何問題。任何想法我做錯了什麼?
TIA。
編輯:
$day
作爲GET參數傳遞。所以,http://127.0.0.1/day.php?day=05_26_09
導致$day = $_GET['day'];
。
剛剛在Google上發現該問題。謝謝。 – benjy 2009-06-29 23:04:14