У меня возникла проблема с подготовленными операторами PDO, где, если вам нужно использовать одну и ту же переменную связывания несколько раз, запрос не будет проверен.
Пример:
$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 ());
}
РЕДАКТИРОВАТЬ:Значения $params
равны:
Array ( [:status] => PAID [:userid] => 111 )
РЕДАКТИРОВАТЬ 2:
Я заметил, что вместо исходных значений вместо userid вставляется 0 , а вместо статуса вставляется пустая строка.