$Query = pg_query_params($db, 'SELECT username FROM users WHERE id = $1 AND password=(crypt(\'$2\',password)) LIMIT 1', array(33,'thepassword'));
«связывать сообщения с поставками 2 параметра, но подготовленный оператор« »требует 1"
Проблема возникает вокруг параметра «$ 2», строка heredoc не работает.
Предложения?
Одиночные кавычки используются в SQL для строковых литералов. Это означает, что это:
'$2'
это просто строка, которая содержит символы $
и 2
а не заполнитель. Если вы хотите заполнить место, вам нужно оставить цитаты:
$Query = pg_query_params($db, '...password=(crypt($2,password))...', array(33,'thepassword'));
Это дает вам местозаполнитель, а не строковый литерал.