php实现网站查询功能实现
数据库连接与配置
使用PDO或MySQLi建立数据库连接,确保配置信息(如主机名、用户名、密码、数据库名)正确。PDO示例:
$dsn = 'mysql:host=localhost;dbname=test_db;charset=utf8';
$username = 'root';
$password = '';
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
构建查询表单
创建HTML表单,包含输入框和提交按钮,表单方法设置为GET或POST:
<form method="GET" action="search.php">
<input type="text" name="keyword" placeholder="输入关键词">
<button type="submit">搜索</button>
</form>
处理查询请求
在PHP脚本中接收表单数据,使用预处理语句防止SQL注入:
if (isset($_GET['keyword'])) {
$keyword = '%' . $_GET['keyword'] . '%';
$stmt = $pdo->prepare("SELECT * FROM products WHERE name LIKE ?");
$stmt->execute([$keyword]);
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
显示查询结果
遍历查询结果并输出到页面,若结果为空显示提示信息:
if (!empty($results)) {
foreach ($results as $row) {
echo "<div>{$row['name']} - {$row['price']}</div>";
}
} else {
echo "未找到匹配结果";
}
分页功能(可选)
对于大量数据,添加分页逻辑。计算总页数并限制查询范围:
$perPage = 10;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $perPage;
$stmt = $pdo->prepare("SELECT * FROM products WHERE name LIKE ? LIMIT $offset, $perPage");
安全优化
对输入数据过滤,避免XSS攻击:
$keyword = htmlspecialchars($_GET['keyword'], ENT_QUOTES, 'UTF-8');
性能优化
为常用查询字段添加数据库索引,例如:
ALTER TABLE products ADD INDEX idx_name (name); 





