I'm using the following code:

```
$query = $dbh->prepare("INSERT into crm_order_errors "
                      ."SET (order_id, number_of_attempts, last_attempt) "
                      ."VALUES (:order_id, 0, :last_attempt) "
                      ."ON DUPLICATE KEY UPDATE number_of_attempts = number_of_attempts + 1, last_attempt = :last_attempt"
         );

$query->execute(array(':order_id'=>$orderId, ':last_attempt'=>1332849904);

```

This produces the following error:

> 
> PHP Warning: 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 '(order\_id, number\_of\_attempts, last\_attempt)
>  VALUES ('10297', 0, '' at line 1 in
>  /\_myClasses/MYSQL\_Logger.php
>  on line 57
> 
> 
> 

It simply isn't clear to me where the error is. It appears that the value for `:last_attempt` is not getting found, since the warning puts its value at `''`: `Values ('10297', 0, ''`. Why is that happening, and is that the source of the problem?

Also, am I allowed to use the same placeholder twice in a prepared statement (in this case, `:last_attempt`).