2

I have been converting my sql code to PHP PDO, and so far I have had two issues. both giving the save error

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 ....

This is my code:

    $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();

I got this same error, the other one was a select. Is there a limitation on how many times you can "Bind"? or the SQL is very long?

Thank you.

2
  • 1
    There's a limitation on how valid your SQL needs to be, as the error says... :P Commented Aug 5, 2011 at 6:13
  • i typed in the values and then tried it, it worked. Commented Aug 5, 2011 at 6:14

2 Answers 2

6

The lone quotation mark is causing a syntax error here:

`email_address` = ':EmailAddress
Sign up to request clarification or add additional context in comments.

2 Comments

wooow, i looked it over maybe 12 times, i didnt even find that. thank you soo much..
Read the error message carefully. "Syntax error near ..." usually means that the character right before that position is incorrect.
-1

in my case I was using query instead of prepare, obvious when you see it.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.