[英]PHP mysqli_num_rows() Function not working
我已經復制了用於執行 mysqli 行計數函數的 W3 學校代碼,但是當我輸入變量時,返回的結果始終為“1”。 我已經通過直接將其輸入到 phpMyAdmin 中檢查了我的 SQL 代碼,它返回了正確的結果。
這是我的代碼:
<?php
$con = mysqli_connect("x", "x", "x", "x");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="SELECT COUNT(*) FROM `Existing_Bookings`";
if ($result=mysqli_query($con,$sql))
{
// Return the number of rows in result set
$rowcount=mysqli_num_rows($result);
printf("Result set has %d rows.\n",$rowcount);
// Free result set
mysqli_free_result($result);
}
mysqli_close($con);
?>
我只是想知道是否有人可以看到這背后的任何明顯原因? 我的服務器運行的是 PHP 5.6,這就是為什么我確保我使用的是 mysqli,而不是 mysql。
如果表中有任何行,選擇count(*)
將始終只返回一行(如您所見)。 該行的內容包含您查詢的實際計數:
$sql="SELECT COUNT(*) FROM `Existing_Bookings`";
if ($result = mysqli_query($con,$sql)) {
// Return the number of rows in result set
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf("Table has %d rows.\n", $row[0]);
// Free result set
mysqli_free_result($result);
}
mysqli_close($con);
您的查詢正在計算 Bookings 的數量,該數量將始終返回包含計數的 1 行。 mysqli_num_rows 將為您提供行數,因此在這種情況下它將始終為 1。
快速修復:將 sql 更改為SELECT * FROM Existing_Bookings
更好的修復:檢查檢查以讀取行: $row = mysqli_fetch_row($result)
然后 $row[0] 將包含計數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.