我试图从特定表中获取总行数:
$result = mysqli_query( $dbcnx, "SELECT COUNT(*) FROM `servers` ;" );
$total = mysqli_fetch_row( $result );
return $total[ 0 ] == 0 ? 0 : $total[ 0 ];
我刚从MySQL改为MySQLi。 该值应为1作为行数,但如果我不检查它,则返回空字符串。
我试图检查是否有任何错误,但它没有显示任何内容。
我的代码有什么问题?
编辑:
我启用了错误报告,现在显示
未定义索引$ dbcnx
但是联系是成功的,那我该怎么办?
这是连接脚本:
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('display_startup_errors', true);
ini_set('xmlrpc_errors', true);
$dbcnx = mysqli_connect( $hostname, $user, $pass, $database );
if( mysqli_connect_errno() )
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit;
}
答案 0 :(得分:0)
对不起,我在2天前解决了这个问题。
问题在于使用它。
我在函数中使用连接$ dbcnx,所以我添加了全局$ dbcnx并且它有效。
谢谢大家!
答案 1 :(得分:-1)
您不需要在查询字符串中包含count(*),因为mysqli具有用于计算行数的集成函数。
<?php
//CONN STRING
$dbConn = mysqli_connect($hostname, $user, $pass, $database);
//CHECK CONN
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
//QUERY TO RUN
$query = "SELECT id FROM servers ORDER BY id";
if ($result = mysqli_query($dbConn, $query)) {
// GET # of ROWS
$count = mysqli_num_rows($result);
//OUTPUT %d will take whats in $count
printf("Result set has %d rows.", $count);
mysqli_free_result($result);
}
//CLOSE CONN
mysqli_close($dbConn);
?>