我開始使用PDO在PHP/MySQL的它的多個數據庫的支持,但由於某種原因,一個查詢不斷產生的錯誤信息:PDOStatement對象執行SQLSTATE無效參數號
$account_email = '[email protected]';
$statement = $pdo->prepare("SELECT id FROM account WHERE account_email = :email");
$statement->execute(array(':email' => $account_email));
警告:PDOStatement對象::執行(): SQLSTATE [HY093]:無效的參數編號:綁定變量的數量不符令牌
對於利益着想的數量我想實現它的其他方式,並把它扔到了同樣的錯誤:
$statement = $pdo->prepare("SELECT id FROM account WHERE account_email = ?");
$statement->execute(array($account_email));
我已經做了相當多的研究,顯然PDO是格式化挑剔的。有沒有PDO不喜歡這個查詢?間距?
僅供參考:我已閱讀了大部分StackOverflow的其他問題。有時候人們在數組中有額外的參數,有時候會出現錯字,有些語法錯誤不會產生錯誤,但仍會影響參數的數量。在這種情況下,一切似乎都很完美
它看起來好像沒什麼問題。這是您的腳本的確切副本,還是您在複製到SO時進行更改?在實際的代碼中可能有一個錯字。 – Barmar
出於安全原因,除了更改電子郵件地址之外,它將進行復制和粘貼。另一個有趣的事情是我有一個插入語句(用於日誌記錄)正上方,它工作正常,它遵循完全相同的格式。 我也在$ account_email之後立即回顯並暫停腳本,以確保所有值都正確傳遞給腳本。他們都很好。我無法把頭圍住它。 – OrangeFrog
你有沒有在腳本中調用'bindParam'或'bindValue'? – Barmar