如何在PHP中显示,如果没有对数据库表没有价值
问题描述:
<?php
$stmt = $con->prepare("SELECT id FROM sample WHERE ID = (SELECT MAX(id) FROM sample)");
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$result = $stmt->fetchAll();
foreach ($result as $row2) {
$auto1 = $row2['id'];
if ($auto1 ===' ') {
echo "There is no ID!";
} else {
echo $auto1;
}
}
?>
它表现出极大的ID,如果有数据库值,但是当我删除所有数据,以尝试,如果我得到的结果“没有身份证ID!“它不显示..帮我请如何在PHP中显示,如果没有对数据库表没有价值
答
您的代码,因为它当前是不会遇到您的错误消息时返回零行。在那里你会得到这个信息的线路是:
$result = $stmt->fetchAll();
的fetchAll()
方法将返回FALSE,如果没有行返回,所以只检查值,并相应地显示错误消息。
<?php
$stmt = $con->prepare("SELECT id FROM sample WHERE ID = (SELECT MAX(id) FROM sample)");
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$result = $stmt->fetchAll();
if($!result){
echo "No rows found..!";
} else {
foreach ($result as $row2) {
$auto1 = $row2['id'];
if ($auto1 ===' ') {
echo "There is no ID!";
} else {
echo $auto1;
}
}
}
?>
+0
哇,你救了我:D和感谢给我的想法如何fetchall()工程:D –
+0
不客气。 。! :-) – BizzyBob
也许你可以试试['rowCount()'](http://php.net/manual/en/pdostatement.rowcount.php)? –
uhmmm我正在使用MAX(),因为我正在创建一个生成的ID基于我的自动增量..我的问题是什么时候没有数据库上的数据..它会给出1的值。我使用MAX,因为如果用户创建另一种形式..它将获得自动增量的最大值并添加1.它将保存到自动生成ID的列中,如“002”。 –
您是否希望在没有行时显示错误消息从您的数据库查询返回? – BizzyBob