首页 >数据库 >mysql教程 >如何从 MySQLi LIKE 查询中获取所有结果?

如何从 MySQLi LIKE 查询中获取所有结果?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-20 06:02:09680浏览

How to Fetch All Results from a MySQLi LIKE Query?

从 MySQLi LIKE 查询中检索多条记录

MySQLi 的 LIKE 查询可以产生多个结果。 但是,标准 fetch() 方法仅检索第一行。 本指南概述了获取所有匹配记录的几种方法。

方法一:get_result()fetch_all()

这是首选方法。 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:使用 fetch() 和循环的准备语句

此方法使用带有 bind_result() 的准备好的语句,并使用 fetch() 进行迭代,直到没有更多行可用:

<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();

$stmt->bind_result($id, $username);
while ($stmt->fetch()) {
  // Process each row ($id, $username)
}</code>

方法 3:execute_query()(PHP 8.2 及更高版本)

对于 PHP 8.2 及更高版本,execute_query() 提供了一个简洁的替代方案:

<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>

有用的资源:

以上是如何从 MySQLi LIKE 查询中获取所有结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

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