MySQL查询结果为空的检查方法(PHP,PDO和MySQL)
当我们使用MySQL执行查询时,我们可能会遇到查询结果为空的情况。在编写PHP脚本时,我们需要检查查询结果是否为空,以避免在访问空结果时发生错误。在这篇文章中,我们将介绍如何使用PHP、PDO和MySQL检查查询结果是否为空。
阅读更多:MySQL 教程
方法一:使用PHP函数
对于一个使用PHP操作MySQL语句查询的结果,我们可以使用PHP内置函数mysqli_num_rows()来检查结果是否为空。
$sql = "SELECT * FROM users WHERE username = 'admin'";
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result) == 0) {
echo "The query result is empty.";
} else {
while($row = mysqli_fetch_assoc($result)) {
//do something
}
}
在上面的示例中,我们首先使用mysqli_query()函数执行SELECT语句,并使用mysqli_num_rows()函数检查结果是否为空。如果结果为空,则输出一条消息,否则我们可以通过mysqli_fetch_assoc()函数获取结果集的每一行,并进行业务处理。
方法二:使用PDO方法
如果我们使用PDO方法连接MySQL数据库,则可以使用rowCount()方法来检查查询结果是否为空。
$sql = "SELECT * FROM users WHERE username = 'admin'";
$result = $pdo->query($sql);
if($result->rowCount() == 0) {
echo "The query result is empty.";
} else {
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
//do something
}
}
在上面的示例中,我们首先使用query()方法执行SELECT语句,并使用rowCount()方法检查结果是否为空。如果结果为空,则输出一条消息,否则我们可以通过fetch()方法获取结果集的每一行,并进行业务处理。
方法三:使用MySQL方法
在MySQL中,我们可以使用SELECT COUNT(*)语句来统计结果集中的行数。如果行数等于0,则表示结果集为空。
$sql = "SELECT COUNT(*) FROM users WHERE username = 'admin'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);
if($row[0] == 0) {
echo "The query result is empty.";
} else {
$sql = "SELECT * FROM users WHERE username = 'admin'";
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)) {
//do something
}
}
在上面的示例中,我们首先执行COUNT(*)语句来检查结果是否为空。如果结果为空,则输出一条消息,否则我们再执行SELECT语句,并进行业务处理。
总结
在PHP中,我们可以使用PHP内置函数mysqli_num_rows()或PDO方法的rowCount()方法来检查查询结果是否为空;在MySQL中,我们可以使用SELECT COUNT(*)语句来统计结果集中的行数。以上三种方法都可以帮助我们避免在访问空结果时发生错误,保障程序的正常运行。