[英]How to check if MySQL results returned empty in PHP?
如何檢查 MySQL 結果是否為空。 如果 MySQL 查詢結果為空,則不應執行 else 條件。 如果 MySQL 在那里產生數據,在其他條件下我的錯誤我的消息在那里,但它沒有顯示任何錯誤消息。 我嘗試了以下代碼,但沒有在屏幕上顯示任何警報或回顯消息。
<?php
$sql = "select * from hall_search_data_1 where rent BETWEEN '".$_SESSION['amount1']."' AND '".$_SESSION['amount2']."'";
$res = mysql_query($sql);
if (!empty($res)) {
while ($row = mysql_fetch_row($res)) {
// here my data
}
} else {
echo "no results found";
}
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "id: " . $row["id"] . " - Name: " . $row["firstname"] . " " . $row["lastname"] . "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>
檢查行數
$result = mysqli_query($conn, $sql);
$rowcount=mysqli_num_rows($result);
if($rowcount > 0){
echo "Number of rows = " . $rowcount;
}
else
{
echo "no record found";
}
您可以使用mysql_num_rows來獲取查詢返回的行數。
if(mysqli_num_rows($res) > 0)
{
// rest of your stuff
}
else
{
echo "No records found.";
}
您可以使用mysql_num_rows來檢查結果集的編號:
$sql = "select * from hall_search_data_1 where rent BETWEEN '".$_SESSION['amount1']."' AND '".$_SESSION['amount2']."'";
$res = mysql_query($sql);
if(isset($res))
{
$noRows = mysql_num_rows($res);
if($noRows > 0){
while($row=mysql_fetch_row($res))
{
here my data
}
}else{
echo "no results found";
echo "<br>";
echo "<script>alert('No any result found..!!');</script>";
echo "no results found";
}
}
在這里找到mysql_num_rows的文檔:
您可以像這樣用mysql_num_rows替換if(!empty($res))
-
$sql = "select * from hall_search_data_1 where rent BETWEEN '".$_SESSION['amount1']."' AND '".$_SESSION['amount2']."'";
$res = mysql_query($sql);
if($countrows = mysql_num_rows($res) >= 1){
while($row=mysql_fetch_row($res))
{
here my data
}
}else{
echo "no results found";
echo "<br>";
echo "<script>alert('No any result found..!!');</script>";
echo "no results found";
}
mysql_*
API 很久以前就從 PHP 中刪除了。 要訪問數據庫,您應該使用 PDO。 檢查 PDO 是否返回任何結果實際上非常簡單。 只需獲取結果,如果數組為空,則 MySQL 不會返回任何內容。
$stmt = $pdo->prepare('SELECT * FROM hall_search_data_1 WHERE rent BETWEEN ? AND ?');
$stmt->execute([$_SESSION['amount1'], $_SESSION['amount2']]);
$records = $stmt->fetchAll();
if ($records) {
foreach ($records as $row) {
// your logic
}
} else {
echo 'No records found!';
}
還有 mysqli 庫,如果你堅持使用它,你必須做更多的工作,但想法是一樣的。 獲取所有結果,如果沒有獲取任何結果,則意味着 MySQL 沒有返回任何行。
$stmt = $mysqli->prepare('SELECT * FROM hall_search_data_1 WHERE rent BETWEEN ? AND ?');
$stmt->bind_param('ss', $_SESSION['amount1'], $_SESSION['amount2']);
$stmt->execute();
$records = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
if ($records) {
foreach ($records as $row) {
// your logic
}
} else {
echo 'No records found!';
}
您可以使用mysql_num_rows();
檢查您的查詢返回行與否
$sql = "select * from hall_search_data_1 where rent BETWEEN '".$_SESSION['amount1']."' AND '".$_SESSION['amount2']."'";
$res = mysql_query($sql);
$rows=mysql_num_rows($res);
if($rows>0)
{
echo "data return from query";
}else{
echo "data not return";
}
注意:- 不推薦使用 mysql,而是使用 mysqli 或 PDO
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.