首页 >数据库 >mysql教程 >如何使用 mysqli 通过 LIKE 查询检索多行?

如何使用 mysqli 通过 LIKE 查询检索多行?

Patricia Arquette
Patricia Arquette原创
2025-01-20 06:21:101010浏览

How to Retrieve Multiple Rows with a LIKE Query Using mysqli?

MySQLi LIKE 查询:检索多行

提供的代码使用bind_resultfetch,仅适合单行检索。 要使用 MySQLi 获取与 LIKE 查询匹配的多行,请考虑以下方法:

方法一:使用get_result()

此方法返回一个结果集对象,允许您使用 fetch_all() 将所有行作为关联数组检索:

<code class="language-php">$param = "%{$_POST['user']}%";
$stmt = $db->prepare("SELECT id, username FROM users WHERE username LIKE ?");
$stmt->bind_param("s", $param);
$stmt->execute();
$result = $stmt->get_result();
$data = $result->fetch_all(MYSQLI_ASSOC);</code>

方法 2:使用 execute_query()(PHP 8.2 及更高版本)

这种简化的方法会同时执行查询并获取所有结果:

<code class="language-php">$sql = "SELECT id, username FROM users WHERE username LIKE ?";
$result = $db->execute_query($sql, ["%{$_POST['user']}%"]);
$data = $result->fetch_all(MYSQLI_ASSOC);</code>

方法3:迭代fetch()

如果您更喜欢 bind_result()fetch() 方法,请使用循环迭代多行:

<code class="language-php">$stmt = $db->prepare("SELECT id, username FROM users WHERE username LIKE ?");
$stmt->bind_param("s", $param);
$stmt->execute();
$stmt->bind_result($id, $username);
while ($stmt->fetch()) {
  echo "Id: {$id}, Username: {$username}";
}</code>

这些替代方案可以有效地检索满足您的 LIKE 条件的所有行。 选择最适合您的编码风格和 PHP 版本的方法。

以上是如何使用 mysqli 通过 LIKE 查询检索多行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn