0

我需要在数据库中搜索属性为?.

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

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

有什么简单的方法可以解决这个问题吗?我试过使用 \? 而是在字符串中,但结果相同。

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

4

4 回答 4

1
  1. 如果是 PDO 中的prepared statement;你可以试试这个:

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

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

select id FROM / * table * / WHERE fullname LIKE '%?%' AND ......
于 2013-05-23T12:01:40.970 回答
0

尝试

select id FROM / * table * / WHERE fullname  LIKE '%?%%' ESCAPE '?';
于 2013-05-23T12:03:09.513 回答
0

尝试使用like..

    select id FROM / * table * / WHERE fullname like '%?%' AND ......
于 2013-05-23T12:01:27.913 回答