如何回显表的正确行数[重复]

Posted

技术标签:

【中文标题】如何回显表的正确行数[重复]【英文标题】: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 【参考方案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 语句,某些数据库可能会返回行数 由该语句返回。但是,不能保证这种行为 适用于所有数据库,不应依赖于可移植性 应用程序。

【讨论】:

那么rowCount()函数的目的是什么? 确定 rowCount() 函数?返回受 DELETE INSERT OR UPDATE php.net/manual/en/pdostatement.rowcount.php 影响的行数 ..但对于 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”列并测试返回了多少记录

以上是关于如何回显表的正确行数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用php根据mysql表中的数据自动创建div?

如何回显单行字段[重复]

如何正确回显 onclick='function($var)'

PHP回显变量的最佳方法[重复]

如何使用 PHP 回显 mysql SELECT COUNT(*) [重复]

从数据库中请求并回显一个浮点数[重复]