pg_query_params返回错误:绑定消息提供2个参数,但是准备好的语句""要求1

时间:2014-10-06 02:58:26

标签: php postgresql prepared-statement

$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字符串不起作用。

建议?

1 个答案:

答案 0 :(得分:16)

单引号在SQL中用于字符串文字。这意味着:

'$2'

只是一个包含字符$2的字符串,而不是占位符。如果你想要一个占位符,你需要省略引号:

$Query = pg_query_params($db, '...password=(crypt($2,password))...', array(33,'thepassword'));

它为您提供占位符而不是字符串文字。