在我执行数据库查询并且回显了一些行之后,似乎在查询之后我无法获得显示的行数。试图使用mysql_num_rows(),但我的$ result是这样的:
$result = $conn->query($sql) or die();
所以我认为问题在于我使用了内置的MySQLi()类,并且出于某种原因 mysql_num_rows()不符合这个$ result。如何使用我正在使用的当前$结果,或者是否有任何其他方法使用MySQLi()类返回行数来创建$ result ??
答案 0 :(得分:1)
mysql和mysqli不可互换。它们是两个完全不同的模块,保持它们各自的连接,并且一个的结果/句柄在另一个中是不可用的。他们可能都使用相同的底层mysql库并与同一个数据库交谈,但它们完全相互独立。
如果您正在使用MySQLi,那么坚持使用MySQLi函数,对于您的问题将使用http://php.net/manual/en/mysqli-stmt.num-rows.php
答案 1 :(得分:1)
注1:如果您只需要表格中的行数,最好按照以下步骤操作:
$result = $conn->query("SELECT COUNT(*) FROM `table`");
$row = $result->fetch_row();
echo '#: ', $row[0];
注2:请勿混淆mysqli_field_count和mysqli_stmt_num_rows。例如:
id firstname
1 foo
2 bar
3 baz