0

我正在尝试使用以下代码获取表中的总行数:

$count = mysqli_query($con, "SELECT COUNT(*) AS total FROM random_codes");
$count = mysqli_fetch_object($count);
$count = $count->total;

echo "count is $count<br />";

但回声始终是“count is”,后面没有任何值。在 phpMyAdmin 中运行相同的 SQL 代码会返回请求的总行数(超过 2000),因此问题可能出在 php 代码中。亲爱的响应者,我是 php 和 sql 的新手,所以请详细说明和/或将我链接到文档。谢谢..

编辑:尝试错误检查,没有错误显示

$result = mysqli_query($con, "SELECT COUNT(*) AS total FROM random_codes");
echo mysqli_error($con);
$obj = mysqli_fetch_object($result);
$count = $obj->total;
echo "count is $count<br />";
4

2 回答 2

2

我可以通过关闭 PHP 的错误报告并建立错误的数据库连接来复制您的问题:

error_reporting(0);

$con = new mysqli("localhost", "baduser", "badpw", "SomeDB");

$count = mysqli_query($con, "SELECT COUNT(*) AS total FROM SomeTable");
echo mysqli_error($con);
$count = mysqli_fetch_object($count);
$count = $count->total;

echo "count is $count<br />";

输出:计数是

尝试打开错误报告并仔细检查您的连接信息:

error_reporting(E_ALL);

也许这可能会给您一个错误,例如:

警告:mysqli::mysqli(): (28000/1045): Access denied for user 'baduser'@'localhost' (使用密码: YES)

如果您在共享主机上,通常他们默认错误报告为可能为您隐藏某些错误的值,并且您需要在开发模式下覆盖该值。

于 2013-04-28T01:46:16.890 回答
1

我认为问题出在 echo 语句中。您需要做的是使用 . “count is”和变量 $count 之间的运算符。

echo "count is". $count."<br />";

如果这不起作用,试试这个。

$query=mysql_query("SELECT COUNT(*) AS total FROM random_codes");
$result=mysql_fetch_array($query);
$count=$result['total'];
echo "count is". $count."<br />";
于 2013-04-27T15:50:26.493 回答