如何在Postgres Like命令中使用参数?
我正在读这份文件.我试图lorem在表格questions和列中搜索一个单词body.
我在PHP中运行以下代码失败了
$result = pg_query_params ( $dbconn,
"SELECT question_id, body
FROM questions
WHERE body ilike '%$1%'",
array ( $_GET['search'])
);
Run Code Online (Sandbox Code Playgroud)
我收到了这个警告
警告:pg_query_params()[function.pg-query-params]:查询失败:错误:绑定消息提供1个参数,但准备好的语句""在第10行的/var/www/codes/search_body.php中需要0调用堆栈
您必须使用参数代替一个整数值,而不是在引号内.
解决方案1:将LIKE通配符连接到参数值:
$result = pg_query_params ( $dbconn,
"SELECT question_id, body
FROM questions
WHERE body ilike $1",
array ( "%" . $_GET['search'] . "%")
);
Run Code Online (Sandbox Code Playgroud)
解决方案2:LIKE在SQL表达式中连接通配符:
$result = pg_query_params ( $dbconn,
"SELECT question_id, body
FROM questions
WHERE body ilike '%' || $1 || '%'",
array ( $_GET['search'] )
);
Run Code Online (Sandbox Code Playgroud)