如何回显表的正确行数[重复]
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
表images
有2430
行。
如何获取正确的行数?
【问题讨论】:
你正在使用 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”列并测试返回了多少记录以上是关于如何回显表的正确行数[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何正确回显 onclick='function($var)'