MySQL特定查询不起作用

时间:2014-08-19 11:15:52

标签: php mysql mysqli

我试图从特定表中获取总行数:

 $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;
}

2 个答案:

答案 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);
?>