当前位置: 首页 > 面试题库 >

在bindParam中使用LIKE进行MySQL PDO查询

薛飞星
2023-03-14
问题内容

我已经阅读了有关如何编写这些查询的多个示例,但是我正在努力使此特定代码像在使用时运行 bindParam

这是匹配以a开头的用户名的正确方法吗?

$term = "a";
$term = "'$term%'";

$sql = "SELECT username 
        FROM `user` 
        WHERE username LIKE :term 
        LIMIT 10";

$core = Connect::getInstance();

$stmt = $core->dbh->prepare($sql);
$stmt->bindParam(':term', $term, PDO::PARAM_STR);
$stmt->execute();
$data = $stmt->fetchAll();

问题答案:

不,您不需要内部单引号 $term = "$term%";

您现在正在运行的语句将尝试匹配'a%'而不是匹配a%

bindParam将确保在将所有字符串数据提供给SQL语句时自动正确引用。



 类似资料:
  • 问题内容: 我正在使用psql在Postgres中查询数据库。我使用以下查询来搜索一个名为 tag 的字段,该字段的数据类型为文本数组: 现在,我需要创建一个查询,以在 标签 字段中搜索以字母“ A”开头的任何单词。我尝试了以下方法: 这给了我一个语法错误。关于如何将LIKE与文本数组结合使用的任何建议? 问题答案: 使用函数将数组转换为行集: 本应算唯一条目表,只需更换你的主键的名称。 话虽这么

  • 问题内容: 设置以下映射 通知ID是一个整数。现在我需要使用like运算符进行此HQL查询 ATT:它 就像 运算符NOT = (等于运算符) 然后我用 但是不起作用,因为Hibernate抱怨在调用User.id的getter时发生了IllegalArgumentException 即使我使用 这没用 我应该使用什么来传递查询? 问题答案: 根据Hibernate参考: str()用于将数字或时

  • 我正在使用Spring-Boot 1.5.10,并将JPA连接到SQL Server2016。我确实有一个执行LIKE的自定义查询,但是当字段为NULL时,不会返回记录:

  • 本文向大家介绍Mysql| 使用通配符进行模糊查询详解(like,%,_),包括了Mysql| 使用通配符进行模糊查询详解(like,%,_)的使用技巧和注意事项,需要的朋友参考一下 通配符的分类: %百分号通配符: 表示任何字符出现任意次数 (可以是0次). _下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符. like操作符: LIKE作用是指示mysql后面的搜索模式是利用通

  • 问题内容: 查询代码和查询: 返回一个空值。 通过基本调试,我发现了它的第三个绑定,即问题 我尝试了各种变体,其中最明智的似乎是在使用: 但这不起作用,因为我错过了连接字符串的任一侧,所以我尝试: 但我似乎无法找到一种方法使它们起作用。 我想念什么? 问题答案: 首先,占位符(那些占位符)仅用于 列值 ,而不用于表名,列名,SQL函数/子句等。最好改用。其次,你应该 不 引用占位符一样,它只会ma

  • 问题内容: 我用来从表中获取数据。现在,从称为的表中获取所有记录正在按预期方式工作。 现在,我希望对多个列执行查询,如下所示: 但这给LIKE带来了错误。我怎样才能做到这一点? 问题答案: 请像运营商一样使用 http://docs.sqlalchemy.org/en/rel_0_9/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOpera