作爲新手,我遵循PHP MySQL教程,建議使用常規MySQL php函數。但是,由於我被告知PDO是更好的選擇,我一直在將我的代碼轉換爲該代碼。我只是碰到了以下問題:MySQL PDO查詢語法錯誤與?參數
$query = $uspdb->prepare("SELECT post_id, is_approved, reports FROM ? WHERE id=? AND ?");
$query->bindValue(1, $table, PDO::PARAM_INT);
$query->bindValue(2, $id, PDO::PARAM_INT);
$query->bindValue(3, checkPermission("comment_moderation"),PDO::PARAM_BOOL);
$query->execute;
$result = $query->fetch(PDO::FETCH_ASSOC);
第一行拋出以下PDO例外:
SQLSTATE[42000]: Syntax error or access violation: 1064 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 '? WHERE id=? AND ?' at line 1
這是爲什麼?我不知道語法有什麼問題。 tutorial I'm reading告訴我應該使用bindValue或execute(array(stuff))來添加參數而不是「。$ id」。和類似的,因爲它更安全,但這不是因爲什麼原因工作。
您將表名稱綁定爲'PDO :: PARAM_INT',相當肯定這是錯誤的。 –