利用MySQLi的LIKE语句高效获取多个搜索结果
本文探讨如何使用MySQLi从LIKE查询中获取多个结果。
问题中提供的原始代码尝试获取单行结果,但这不适用于可能返回多行的场景。要正确获取所有结果,可以使用以下方法:
<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>
或者,从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>
如果您更喜欢传统的fetch
和bind_result
语法,可以使用以下代码:
<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()) { echo "Id: {$id}, Username: {$username}"; }</code>
这些更新后的代码片段确保从数据库检索所有匹配的行,允许您根据需要访问数据。
以上是如何在 MySQLi 中使用 LIKE 正确获取多个搜索结果?的详细内容。更多信息请关注PHP中文网其他相关文章!