获取具有特定值的数据库中的行数? - PHP MYSQL

时间:2014-05-21 23:35:36

标签: php mysql mysqli

是否可以从数据库中获取具有特定值的行数?假设我想显示投票给1的数据库中有多少人。它会说People that voted for guy 1: <number> (在数据库中,1或2的选择存储为0或1)

我试过

SELECT COUNT(*) FROM vote WHERE choice=1

没用。还有其他方法吗?

修改

完整代码:

$sql = "SELECT COUNT(*) FROM vote WHERE choice=1"; $stmt = $link->prepare($sql); $result0 = $stmt->num_rows(); echo $result0;

当数据库中有2个特别是

时,我得到0

2 个答案:

答案 0 :(得分:0)

在您的查询中,select与谓词choice=1匹配的行数:

$sql = "SELECT COUNT(*) FROM vote WHERE choice=1";
$stmt = $link->prepare($sql);

然后,您询问该查询的返回行数:

$result0 = $stmt->num_rows();
echo $result0;

但是,由于查询返回了多个行,因此它应该只包含包含该值的1行。您想要的是将查询更改为:

SELECT * FROM vote WHERE choice=1

并且几乎像您一样获取返回的行数,或者检索从原始查询获得的第一行中的值:

$result0 = $stmt->bind_result($result0);
$stmt->fetch();

但请注意:

  • num_rows不是函数,它是$stmt
  • 的属性
  • 您应该在store_result()上使用$stmt方法,然后才能访问num_rows以获得有意义的结果

所以使用num_rows的代码应该是:

$stmt->store_result();
$result0 = $stmt->num_rows;
echo $result0;

(参见documentation)。

答案 1 :(得分:-2)

我想你可以试试这个:

SELECT COUNT(*)FROM highscores WHERE vote =&#39; 1&#39;