Php 正在获取PDO执行后的行数

Php 正在获取PDO执行后的行数,php,sql,pdo,Php,Sql,Pdo,我试图显示搜索后在数据库中找到的行数 这是我的密码: $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

我试图显示搜索后在数据库中找到的行数

这是我的密码:

$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>";
      }
$city=$\u POST['city'];
$bloodType=$_POST['donorType'];
$q=$db->prepare(“从'users'中选择count(*)作为提示,其中'city`=:city和'bloodType`=:bloodType”);
$q->bindValue(“:city”,$city,PDO::PARAM_INT);
$q->bindValue(“:bloodType”,$bloodType);
$q->execute();
而($row=$q->fetch(PDO::fetch\U ASSOC)){
echo“

找到了“$row['numusers']”个可用的捐赠者。 您必须是管理员才能查看其详细信息。

”; }
这是我最后一次尝试了。我收到了这个错误信息 `注意:未定义索引:numusers


如何解决这些提示?

只需创建
count(*)的别名

是的

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

只需创建
count(*)的别名

是的

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

PDO中有一个特殊的方法来检索此类数据—查询返回的单个值。所以你根本不必为化名而烦恼

此外,在这里使用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>";
$city=$\u POST['city'];
$bloodType=$_POST['donorType'];
$q=$db->prepare(“从`users`中选择count(*),其中`city`=:city和`bloodType`=:bloodType”);
$q->bindValue(“:city”,$city,PDO::PARAM_INT);
$q->bindValue(“:bloodType”,$bloodType);
$q->execute();
$numusers=$q->fetchColumn();
echo“

找到了/有$numusers可用的捐赠者。 您必须是管理员才能查看其详细信息。

”;
PDO中有一种特殊的方法来检索此类数据—查询返回的单个值。所以你根本不必为化名而烦恼

此外,在这里使用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>";
$city=$\u POST['city'];
$bloodType=$_POST['donorType'];
$q=$db->prepare(“从`users`中选择count(*),其中`city`=:city和`bloodType`=:bloodType”);
$q->bindValue(“:city”,$city,PDO::PARAM_INT);
$q->bindValue(“:bloodType”,$bloodType);
$q->execute();
$numusers=$q->fetchColumn();
echo“

找到了/有$numusers可用的捐赠者。 您必须是管理员才能查看其详细信息。

”;
它应该像这个SELECT count(*)as numuser它应该像这个SELECT count(*)as numusers
您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,了解使用near'AS
numusers`
users
WHERE
city
='3'和
bloodType
='4''的正确语法。我收到此错误消息从
numusers
仅使用
选择计数(*)作为numusers.
在更新的问题中,您创建表的别名,您需要创建
计数(*)的别名。
检查更新的答案!!非常感谢。我把
放在
用户的
之后,``我没有这样做,这将是非常敏感的lol。谢谢上帝保佑:)将在5分钟后勾选检查:)
您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,了解使用near'AS
numusers`
users
WHERE
city
='3'和
bloodType
='4''的正确语法。我收到此错误消息从
numusers
仅使用
选择计数(*)作为numusers.
在更新的问题中,您创建表的别名,您需要创建
计数(*)的别名。
检查更新的答案!!非常感谢。我把<代码>放在<代码>用户的<代码>之后,``我没有,这会是那么敏感的lol。感谢上帝保佑:)5分钟后会勾选检查:)