【问题标题】:How to echo the correct number of rows of a table [duplicate]如何回显表的正确行数[重复]
【发布时间】:2020-03-07 13:15:11
【问题描述】:

需要一个表的行数。

$st = $db->query("select count(*) from images");
$total = $st->rowCount();
echo $total;

结果 - 1

images2430 行。

如何获取正确的行数?

【问题讨论】:

  • 你正在使用 PDO ??
  • SELECT COUNT(*) AS cnt 然后echo $st['cnt']
  • @EmanuelVintilă,您的代码生成 fatal error

标签: php mysql


【解决方案1】:

使用 PDO 你可以使用

$result = $con->prepare("select count(*) from images"); 
$result->execute(); 
$total = $result->fetchColumn(); 
echo $total;

假设 $con 是您与 db 的连接

来自 PHP 文档

DOStatement::rowCount() 返回受 相应的最后执行的 DELETE、INSERT 或 UPDATE 语句 PDOStatement 对象。

如果关联的 PDOStatement 执行的最后一条 SQL 语句是 SELECT 语句,某些数据库可能会返回行数 由该语句返回。但是,不能保证这种行为 适用于所有数据库,不应依赖于可移植性 应用程序。

【讨论】:

【解决方案2】:

使用 PHP 和 MYSQLi 函数


$query = "select * from images";
$result = mysqli_query($db, $query);

echo mysqli_num_rows($result);

这将输出表格中的总行数

当然,这是假设已经使用 $db 与数据库建立了连接

【讨论】:

  • rowCount() 是 PDO,而不是 mysqli_*
  • 如果你有一个包含很多列的大表,这是一个相对糟糕的答案,在不必要的时候选择所有内容是无效的。
  • @SamyokNepal,那么select count(*) 是否也是一种床解决方案——同样的原因?
  • @qadenza 据我了解,这是非常无效的,因为它是在 SQL 服务器而不是 PHP 服务器上运行的(所有列都不会发送到 PHP)——对于你的情况,这很好。
  • @SamyokNepal 也许。我做的另一个简单的技巧是只为单个列运行选择,可能是“_id”列并测试返回了多少记录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-19
  • 2014-05-02
  • 1970-01-01
  • 2017-01-11
  • 2021-09-26
相关资源
最近更新 更多