$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字符串不起作用。
建议?
答案 0 :(得分:16)
单引号在SQL中用于字符串文字。这意味着:
'$2'
只是一个包含字符$
和2
的字符串,而不是占位符。如果你想要一个占位符,你需要省略引号:
$Query = pg_query_params($db, '...password=(crypt($2,password))...', array(33,'thepassword'));
它为您提供占位符而不是字符串文字。