📜  PHP | MySQL WHERE 子句(1)

📅  最后修改于: 2023-12-03 15:33:34.206000             🧑  作者: Mango

PHP | MySQL WHERE 子句

概述

在 MySQL 中,SELECT 语句用于查询数据库表中的数据。其中,WHERE 子句用于指定查询的条件,只有符合条件的记录才会被返回。在 PHP 中,我们通过 mysqli 扩展或 PDO 扩展提供的函数来执行 MySQL 查询语句,其中也包括了 WHERE 子句。

语法

在 MySQL 查询语句中,WHERE 子句的语法为:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

其中,column1, column2, ... 表示要查询的字段名,table_name 表示要查询的表名,condition 表示查询条件。

在 PHP 的代码中,我们可以通过以下两种方式来使用 WHERE 子句:

mysqli 扩展
//连接数据库
$conn = mysqli_connect($host, $username, $password, $dbname);

//查询语句
$sql = "SELECT column1, column2, ...
        FROM table_name
        WHERE condition";

//执行查询
$result = mysqli_query($conn, $sql);

//读取结果
while($row = mysqli_fetch_assoc($result)) {
    //处理查询结果
}

其中,$host, $username, $password, $dbname 分别表示数据库主机名、用户名、密码和数据库名,$sql 表示要执行的查询语句,$result 表示查询结果集。我们可以通过 mysqli_fetch_assoc 函数来逐行读取查询结果集中的数据。

PDO 扩展
//连接数据库
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);

//查询语句
$sql = "SELECT column1, column2, ...
        FROM table_name
        WHERE condition";

//执行查询
$stmt = $conn->prepare($sql);
$stmt->execute();

//读取结果
while($row = $stmt->fetch()) {
    //处理查询结果
}

其中,$conn 表示数据库连接对象,$stmt 表示查询语句对象。我们可以通过 $stmt->fetch() 函数来逐行读取查询结果集中的数据。

示例

假设我们有一个 users 表,其中存储了用户的信息,包括用户 ID、用户名、邮箱和创建时间。我们要查询出所有邮箱为 example.com 的用户信息,那么查询语句可以写成:

SELECT id, username, email, created_at
FROM users
WHERE email LIKE '%@example.com';

在 PHP 的代码中,如果使用 mysqli 扩展,查询语句可以写成:

$conn = mysqli_connect($host, $username, $password, $dbname);

$sql = "SELECT id, username, email, created_at
        FROM users
        WHERE email LIKE '%@example.com'";

$result = mysqli_query($conn, $sql);

while($row = mysqli_fetch_assoc($result)) {
    //处理查询结果
    echo $row['id'], $row['username'], $row['email'], $row['created_at'];
}

如果使用 PDO 扩展,查询语句可以写成:

$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);

$sql = "SELECT id, username, email, created_at
        FROM users
        WHERE email LIKE '%@example.com'";

$stmt = $conn->prepare($sql);
$stmt->execute();

while($row = $stmt->fetch()) {
    //处理查询结果
    echo $row['id'], $row['username'], $row['email'], $row['created_at'];
}
总结

WHERE 子句是 MySQL 查询语句中用于指定查询条件的语句。在 PHP 中,我们可以通过 mysqli 或 PDO 扩展提供的函数来执行带有 WHERE 子句的查询语句,并通过 $stmt->execute()mysqli_query 函数来执行查询语句,通过 $stmt->fetch()mysqli_fetch_assoc 函数来逐行读取查询结果。