You have an sql syntax error in the UPDATE query.
You need to ALWAYS have error handling for all statements that can fail. The easiest way of adding error handling for database statements (connection, query, prepare, and execute) is to use exceptions and in most cases let php catch and handle the exception, where it will use its' error_reporting, display_errors, and log_errors settings to control what happens with the actual error information (database statement errors will get displayed/logged the same as php errors.) The exception to this rule is when inserting/updating duplicate user submitted data. In this case, this is a recoverable error, that your code needs to detect and report back to the user so that they can enter different value(s) and resubmit the data.
For the PDO extension, the connection always uses exceptions. To enable exceptions for the rest of the PDO statements, set the error mode to exceptions when you make the connection. You can either supply an array of options in the connection statement or call the ->setAttribute() method after making the connection.
You should also set emulated prepared queries to false, and set the default fetch mode to assoc.