MySQLi LIKE
查询:检索多行
提供的代码使用bind_result
和fetch
,仅适合单行检索。 要使用 MySQLi 获取与 LIKE
查询匹配的多行,请考虑以下方法:
方法一:使用get_result()
此方法返回一个结果集对象,允许您使用 fetch_all()
将所有行作为关联数组检索:
$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);
方法 2:使用 execute_query()
(PHP 8.2 及更高版本)
这种简化的方法会同时执行查询并获取所有结果:
$sql = "SELECT id, username FROM users WHERE username LIKE ?"; $result = $db->execute_query($sql, ["%{$_POST['user']}%"]); $data = $result->fetch_all(MYSQLI_ASSOC);
方法3:迭代fetch()
如果您更喜欢 bind_result()
和 fetch()
方法,请使用循环迭代多行:
$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}"; }
这些替代方案可以有效地检索满足您的 LIKE
条件的所有行。 选择最适合您的编码风格和 PHP 版本的方法。
以上是如何使用 mysqli 通过 LIKE 查询检索多行?的详细内容。更多信息请关注PHP中文网其他相关文章!