PDO: Using same bind variable multiple times

mysql, pdo, php

Solution

Problem was the quotes around the :status. Removed quotes and all is good.

Problem

I'm having an issue with PDO Prepared statements, where if you need to use the same bind variable multiple times, the query won't validate. Example: ``` $params = array ( ':status' => $status, ':userid' => $_SESSION['userid'] ); $stmt = $pdo->prepare (' INSERT INTO tableName ( userId, status ) VALUES ( :userid, ":status" ) ON DUPLICATE KEY UPDATE status = ":status" '); if ( ! $stmt->execute ( $params )) { print_r( $stmt->errorInfo ()); } ``` EDIT: The values of the `$params` are: `Array ( [:status] => PAID [:userid] => 111 )` EDIT 2: I've noticed that instead of the original values, instead of userid, 0 is inserted, and instead of status an empty string is inserted.

Original source

Related problems