Php 逃跑&引用;在构造的MYSQL查询中

Php 逃跑&引用;在构造的MYSQL查询中,php,mysql,Php,Mysql,我需要在数据库中搜索属性为?的记录 当我构造与下面类似的查询时,它也希望传入一个参数 select id FROM / * table * / WHERE fullname = '?' AND ...... 有什么简单的办法吗?我试过用\?而是在字符串中,但具有相同的结果 感谢您的建议,问题在于查询被传递到软件的另一部分以推送到数据库,并且它正在努力处理“?”尝试使用类似的 select id FROM / * table * / WHERE fullname like '%?%' A

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

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

select id FROM / * table * / WHERE fullname = '?' AND ......
有什么简单的办法吗?我试过用\?而是在字符串中,但具有相同的结果


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

尝试使用类似的

    select id FROM / * table * / WHERE fullname like '%?%' AND ......
您可以在子句中使用比较函数来匹配所需列中的
。通过这种方式,您将找到包含输入字符串的匹配项,而不是使用相等比较运算符可以找到的精确匹配项

select id FROM / * table * / WHERE fullname LIKE '%?%' AND ......
试一试

  • 如果是在PDO中编制的报表;您可以尝试以下方法:

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

  • php或mysql是否在抱怨问号?我不明白实际问题是什么?此查询在mysql中工作,例如在mysql控制台中。这可能是MySQL客户端的问题。为什么要注释表名?调用属性
    不是一个非常明智的举动。如果你使用的是MySQLi,你就完蛋了。如果你使用PDO,考虑命名参数化。那么我们能看到PHP代码吗?
    $statement = $connection->prepare( "select id FROM tablename WHERE fullname = ? AND ..";
    $statement->bindParam( 1, '?', PDO::PARAM_STR );