MySQL 动态多条件查询是指根据用户输入的多个条件,动态地构建 SQL 查询语句,以实现灵活的数据检索。这种查询方式常用于数据管理系统,如电商平台的商品搜索、社交网络的用户筛选等。
以下是一个简单的 PHP 示例,展示如何实现 MySQL 动态多条件查询:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取用户输入的条件
$brand = $_GET['brand'] ?? '';
$price_min = $_GET['price_min'] ?? '';
$price_max = $_GET['price_max'] ?? '';
// 构建动态查询语句
$sql = "SELECT * FROM products WHERE 1=1";
$params = [];
if (!empty($brand)) {
$sql .= " AND brand = ?";
$params[] = $brand;
}
if (!empty($price_min)) {
$sql .= " AND price >= ?";
$params[] = $price_min;
}
if (!empty($price_max)) {
$sql .= " AND price <= ?";
$params[] = $price_max;
}
// 执行查询
$stmt = $conn->prepare($sql);
$stmt->bind_param(str_repeat('s', count($params)), ...$params);
$stmt->execute();
$result = $stmt->get_result();
// 处理结果
while ($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - Brand: " . $row["brand"]. " - Price: " . $row["price"]. "<br>";
}
$stmt->close();
$conn->close();
?>
mysqli_prepare
)可以有效防止 SQL 注入攻击。通过以上方法,可以实现灵活且安全的 MySQL 动态多条件查询。
领取专属 10元无门槛券
手把手带您无忧上云