首页 > 后端开发 > php教程 > 如何使用 MySQLi 预准备语句安全地构建动态 LIKE 查询?

如何使用 MySQLi 预准备语句安全地构建动态 LIKE 查询?

DDD
发布: 2024-12-05 21:30:12
原创
736 人浏览过

How to Securely Build Dynamic LIKE Queries with MySQLi Prepared Statements?

使用带有动态 LIKE 条件的预准备语句

要使用 MySQLi 预准备语句构造具有动态数量的 LIKE 条件的 SELECT 查询,如下必须将百分号 (%) 包裹在参数周围,而不是

以下是在 PHP 中实现此操作的分步指南:

  1. 提取并准备表达式和数据类型:
    分离用户使用explode()输入各个搜索词。初始化数组,用于存储 WHERE 子句表达式($conditions)以及数据类型和值的组合($parameters)。
$conditions = [];
$parameters = [''];
登录后复制
  1. 构造表达式和参数:
    迭代搜索词,创建一系列 LIKE 表达式并添加相应的数据类型$parameters.
foreach ($search_exploded as $value) {
    $conditions[] = "name LIKE ?";
    $parameters[0] .= 's';
    $parameters[] = "%{$value}%";
}
登录后复制
  1. 准备并执行查询:
    将 $conditions 连接到 WHERE 子句中。准备带有查询的语句,使用 splat 运算符 (...) 绑定 $parameters,然后执行它。
$query = "SELECT * FROM info";
if ($conditions) {
    $stmt = $mysqli->prepare($query . ' WHERE ' . implode(' OR ', $conditions));
    $stmt->bind_param(...$parameters);
    $stmt->execute();
    $result = $stmt->get_result();
} else {
    $result = $conn->query($query);
}
登录后复制

通过执行以下步骤,您可以有效地使用动态执行查询使用 MySQLi 准备语句的 LIKE 条件数量,确保灵活性和安全性。

以上是如何使用 MySQLi 预准备语句安全地构建动态 LIKE 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板