3
我一直在拉我的頭髮,試圖將我當前的腳本交換到PDO。我已經簡化了這個例子的MySQL查詢,但是這個版本仍然存在錯誤。42000執行預準備語句時查詢中的語法錯誤
$sql = 'SELECT * FROM :table WHERE lastUpdate > :appDate';
try{
$db = connect();
$stmt = $db->prepare($sql);
$stmt->bindParam(':table', $table);
$stmt->bindParam(':appDate', $appDate);
foreach($tablesToCheck as $table){
$stmt->execute();
$resultset[] = $stmt->fetchAll();
}
} catch(PDOException $e){
print 'Error!: '.$e->getMessage().'<br/>';
}//End try catch
$ stmt-> errorInfo中()返回:
([0] => 42000 [1] => 1064 [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the
right syntax to use near ''GroupName' WHERE lastUpdate > NULL' at line 1)
的準備,你不能使用佔位符表或者列標識符聲明。 ':table'因此在那裏無效。 –
相反,請檢查'$ table'的輸入值與列出的可接受值的列表,並將其連接到查詢中。 –
我想我可以在foreach中使用try-catch,並在查詢中使用$ table。但是,謝謝,我不知道你不能使用桌子或柱子的佔位符 –