准备数据库和表结构

(图片来源网络,侵权删除)
假设我们有一个名为users的数据库表,其结构如下:
| 字段名 | 数据类型 | 描述 |
| id | INT | 用户ID,主键 |
| name | VARCHAR(50) | 用户名 |
| VARCHAR(50) | 用户邮箱 | |
| age | INT | 用户年龄 |
| city | VARCHAR(50) | 用户所在城市 |
1. 创建数据库连接
我们需要创建一个到MySQL数据库的连接。
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn>connect_error) {
die("连接失败: " . $conn>connect_error);
}
2. 构建多条件查询
假设我们要查找年龄在30岁以上且居住在北京的用户,我们可以构建一个包含多个条件的SQL查询。

(图片来源网络,侵权删除)
$ageCondition = 30; $cityCondition = "北京"; $sql = "SELECT * FROM users WHERE age > $ageCondition AND city = '$cityCondition'";
3. 执行查询并处理结果
我们执行SQL查询并处理返回的结果。
$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 "0 结果";
}
4. 关闭数据库连接
记得关闭数据库连接。
$conn>close();
相关问题与解答
Q1: 如果我想添加更多的条件怎么办?
A1: 你可以在SQL查询中添加更多条件,如果你想查找年龄大于30岁、居住在北京且名字以"张"开头的用户,你可以这样写查询:
$sql = "SELECT * FROM users WHERE age > $ageCondition AND city = '$cityCondition' AND name LIKE '张%'";
Q2: 如何防止SQL注入攻击?
A2: 为了防止SQL注入攻击,你应该始终使用参数化查询或预处理语句,以下是使用预处理语句的示例:
$stmt = $conn>prepare("SELECT * FROM users WHERE age > ? AND city = ?");
$stmt>bind_param("is", $ageCondition, $cityCondition);
$stmt>execute();
$result = $stmt>get_result();
在这个例子中,? 是参数占位符,而bind_param方法确保了变量$ageCondition和$cityCondition安全地传递到查询中,从而避免了SQL注入攻击。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/12890.html