PHP实现搜索查询功能,可以通过SQL的LIKE语句结合GET请求参数来实现。你需要获取表单或URL中的查询字符串,然后在SQL查询中使用LIKE语句来搜索包含该字符串的结果。
PHP 搜索查询功能实现

(图片来源网络,侵删)
在 PHP 中,我们可以使用 SQL 语句来实现搜索查询功能,以下是一个简单的例子,展示了如何在 PHP 中使用 MySQLi 扩展来执行搜索查询。
1、建立数据库连接
我们需要连接到数据库,假设我们有一个名为my_database 的数据库,其中有一个名为users 的表,包含id,name,email 等字段。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "my_database";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn>connect_error) {
die("连接失败: " . $conn>connect_error);
}
?>
2、执行搜索查询
我们将创建一个 PHP 函数来执行搜索查询,这个函数将接收一个查询字符串作为参数,并返回与该查询字符串匹配的结果。

(图片来源网络,侵删)
function searchUsers($queryString) {
global $conn;
// 防止 SQL 注入
$queryString = $conn>real_escape_string($queryString);
// 构建 SQL 查询
$sql = "SELECT * FROM users WHERE name LIKE '%$queryString%' OR email LIKE '%$queryString%'";
// 执行查询
$result = $conn>query($sql);
// 处理结果
if ($result>num_rows > 0) {
while($row = $result>fetch_assoc()) {
echo "id: " . $row["id"]. " Name: " . $row["name"]. " Email: " . $row["email"]. "<br>";
}
} else {
echo "没有找到匹配的结果";
}
}
3、调用搜索函数
我们可以调用searchUsers 函数来执行搜索查询,如果我们想要查找名字中包含 "John" 的用户,我们可以这样做:
searchUsers("John");
4、关闭数据库连接
不要忘记在完成所有操作后关闭数据库连接。
$conn>close();
相关问题与解答

(图片来源网络,侵删)
Q1: 如何防止 SQL 注入攻击?
A1: 为了防止 SQL 注入攻击,可以使用预处理语句(prepared statements)或参数化查询,在上面的例子中,我们使用了real_escape_string 函数来转义用户输入的特殊字符,从而减少 SQL 注入的风险。
Q2: 如果我想根据多个字段进行搜索,应该如何修改查询语句?
A2: 如果你想根据多个字段进行搜索,可以在 SQL 查询中使用OR 运算符来组合多个条件,如果你还想根据用户的姓氏进行搜索,可以这样修改查询语句:
$sql = "SELECT * FROM users WHERE name LIKE '%$queryString%' OR email LIKE '%$queryString%' OR last_name LIKE '%$queryString%'";