逃避“?”在构造的MYSQL查询中

时间:2013-05-23 11:58:14

标签: php mysql

我需要在数据库中搜索属性为?的记录。

当我构造类似于下面的查询时,它也希望传入一个参数。

select id FROM / * table * / WHERE fullname = '?' AND ......

这有什么简单的方法吗?我试过用\?而是在字符串中,但结果相同。

感谢您提出的建议,问题是该查询被传递到软件的另一部分以推送到数据库,并且正在努力处理“?”。

4 个答案:

答案 0 :(得分:1)

  1. 如果在PDO中准备好声明;你可以试试这个:

    $statement = $connection->prepare( "select id FROM tablename WHERE fullname = ? AND ..";
    $statement->bindParam( 1, '?', PDO::PARAM_STR );
    
  2. 如果是简单的MySQL查询,则根本不需要转义?

答案 1 :(得分:0)

尝试使用like ..

    select id FROM / * table * / WHERE fullname like '%?%' AND ......

答案 2 :(得分:0)

您可以在子句中使用LIKE %%比较功能来匹配所需列中的?。通过这种方式,您将找到包含输入字符串的匹配项,而不是使用相等比较运算符

找到的完全匹配项
select id FROM / * table * / WHERE fullname LIKE '%?%' AND ......

答案 3 :(得分:0)

尝试

select id FROM / * table * / WHERE fullname  LIKE '%?%%' ESCAPE '?';