MySQL 动态拼接 SQL 语句是指在运行时根据不同的条件或输入,动态生成 SQL 查询语句。这种技术常用于构建灵活的数据查询系统,可以根据用户的输入或其他外部条件生成不同的 SQL 语句。
PREPARE
和 EXECUTE
语句)来动态生成和执行 SQL 语句。以下是一个基于字符串拼接的简单示例:
<?php
$host = 'localhost';
$user = 'root';
$password = 'password';
$dbname = 'testdb';
// 创建连接
$conn = new mysqli($host, $user, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 动态拼接 SQL 语句
$name = $_GET['name'] ?? '';
$age = $_GET['age'] ?? '';
$sql = "SELECT * FROM users";
$params = [];
if (!empty($name)) {
$sql .= " WHERE name = ?";
$params[] = $name;
}
if (!empty($age)) {
if (count($params) > 0) {
$sql .= " AND";
} else {
$sql .= " WHERE";
}
$sql .= " age = ?";
$params[] = $age;
}
// 执行查询
$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 "Name: " . $row["name"] . " Age: " . $row["age"] . "<br>";
}
$stmt->close();
$conn->close();
?>
通过以上内容,你应该对 MySQL 动态拼接 SQL 语句有了全面的了解,并且知道如何在实际应用中避免常见的问题。
领取专属 10元无门槛券
手把手带您无忧上云