📅  最后修改于: 2023-12-03 15:33:34.206000             🧑  作者: Mango
在 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 子句:
//连接数据库
$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
函数来逐行读取查询结果集中的数据。
//连接数据库
$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
函数来逐行读取查询结果。