我一直在轉換我的SQL代碼到PHP PDO,到目前爲止我有兩個問題。既給保存錯誤PHP PDO:語法錯誤或訪問衝突
Warning: PDOStatement::execute() [pdostatement.execute]: 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 '1', `admin_active` = '0' WHERE `id` = '1' AND `agency_id` = '1' LIMIT 1' at line 1 in ....
這是我的代碼:
$sql = "UPDATE `tblAgencyLocations` ";
$sql .= "SET `location_name` = :LocationName, `address1` = :Address1, `address2` = :Address2, ";
$sql .= "`city` = :City, `state` = :State, `zip_code` = :ZipCode, `phone1` = :Phone1, ";
$sql .= "`phone2` = :Phone2, `fax1` = :Fax1, `email_address` = ':EmailAddress, ";
$sql .= "`admin_active` = :LocationActive ";
$sql .= "WHERE `id` = :AgencyLocationID AND `agency_id` = :agencyID LIMIT 1";
$STH = $this->prepare($sql);
$STH->bindParam(':agencyID', $agencyID);
$STH->bindParam(':LocationName', $LocationName);
$STH->bindParam(':Address1', $Address1);
$STH->bindParam(':Address2', $Address2);
$STH->bindParam(':City', $City);
$STH->bindParam(':State', $State);
$STH->bindParam(':ZipCode', $ZipCode);
$STH->bindParam(':Phone1', $Phone1);
$STH->bindParam(':Phone2', $Phone2);
$STH->bindParam(':Fax1', $Fax1);
$STH->bindParam(':EmailAddress', $EmailAddress);
$STH->bindParam(':LocationActive', $LocationActive);
$STH->bindParam(':AgencyLocationID', $AgencyLocationID);
$STH->execute();
我得到了同樣的錯誤,另一次是一個選擇。你可以「綁定」多少次有限制?或者SQL很長?
謝謝。在我的情況
`email_address` = ':EmailAddress
有一個限制,你的SQL需要如何有效,因爲錯誤說...:P – deceze
我鍵入的值,然後嘗試它,它的工作。 –