我使用純PHP與PDO用於處理MySQL數據庫,我正在開發一個登錄系統,當我嘗試驗證匹配的數據庫記錄,這是我的代碼:MYSQL與PDO - 柱沒有發現
$query = "SELECT id FROM users WHERE username=`:u` AND password=`:p`;";
try{
$q = $db->prepare($query);
$q->bindParam(':u', $this->_username, PDO::PARAM_INT);
$q->bindParam(':p', $this->_passmd5, PDO::PARAM_INT);
if($q->execute()&& ($q->rowCount() == 1)){
return true;
}else{
return false;
}
}catch(PDOException $e){
$this->_errors[] = $e->getMessage();
}
當我提交用戶名和密碼即(管理員/密碼)。它給我的錯誤:
SQLSTATE[42S22]: Column not found: 1054 Unknown column ''admin'' in 'where clause'
可能重複的[何時使用單引號,雙引號和反引號?](http://stackoverflow.com/questions/11321491/when-to-use-single -quotes-double-quotes-and-backticks) – Qirel
反引號'\''是用於列名和數據庫名的。單引號「'」用於包裝字符串。在處理準備好的語句時,你應該在佔位符周圍什麼都不用。另外,我猜你的用戶名和密碼不是整數,而是字符串,所以'PDO :: PARAM_INT'在這裏有點不合適。應該是'PDO :: PARAM_STR' – Qirel
我沒有看到這個錯誤可能來自您顯示的查詢。查詢中沒有「管理員」。錯誤應該說'未知列':u「'。 – Barmar