簡體   English   中英

PDO執行后獲取行數

[英]Fetching number of rows after PDO execute

我試圖在搜索后顯示數據庫中找到的行數。

這是我的代碼:

$city =  $_POST['city'];
 $bloodType = $_POST['donorType'];

     $q = $db->prepare("SELECT count(*) FROM  `users` AS numusers WHERE `city` = :city  AND `bloodType` = :bloodType");
     $q->bindValue(":city",$city,PDO::PARAM_INT);
     $q->bindValue(":bloodType",$bloodType);
     $q->execute();

    while($row = $q->fetch(PDO::FETCH_ASSOC)){
    echo "<p align='center'><h5> There is/are <span class='red-text'>".$row['numusers']."</span> available donor(s) found.
    You must be a <b><a href='register.php'>registered user</a></b> to view their details.</h5></p>";
      }

這是我做的最后一次嘗試。 我收到此錯誤消息`注意:未定義的索引:numusers

我該如何解決這些提示?

只需創建count(*)別名

SELECT count(*) AS numusers..

這將是

$q = $db->prepare("SELECT count(*) AS  numusers FROM `users` WHERE `city` = :city  AND `bloodType` = :bloodType");

PDO中有一種特殊方法可以檢索此類數據 - 查詢返回的單個值PDOStatement :: fetchColumn() 所以你根本不必麻煩別名。

此外,while循環在這里是多余的。

$city =  $_POST['city'];
$bloodType = $_POST['donorType'];

$q = $db->prepare("SELECT count(*) FROM  `users` WHERE `city` = :city  AND `bloodType` = :bloodType");
$q->bindValue(":city", $city, PDO::PARAM_INT);
$q->bindValue(":bloodType", $bloodType);
$q->execute();
$numusers = $q->fetchColumn();

echo "<p align='center'><h5> There is/are <span class='red-text'>$numusers</span> available donor(s) found.
You must be a <b><a href='register.php'>registered user</a></b> to view their details.</h5></p>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM