如何使用mysqli获取总行数

Deb*_*rma 6 mysql row count

我试图了解mysqli扩展并做谷歌,但得到的信息非常少,除了php.net,这是有帮助的.

现在毕竟这是我试图实现我可以使用mysql扩展,如下所示:

// MYSQL STYLE OF fetching array, query limit and perform total row count all at once

$sql = "SELECT SQL_CALC_FOUND_ROWS *, post.id as pid, bla bla FROM account ORDER BY pid ASC". $eb["array"]['querylimit'];

$result = mysql_query($sql, $eb["con"]);
$TotalRcount = mysql_fetch_row(mysql_query("SELECT FOUND_ROWS()"));

// Performing record count [current]
// $RecordCount = mysql_num_rows($result);

while($row = mysql_fetch_array($result)){
    // read columns
}
Run Code Online (Sandbox Code Playgroud)

用mysqli我怎么能实现这个目标?我相信我错过了很多东西.请帮我举例说明如何实现我的目标.

Cod*_*ank 6

你可以试试这个:

//Establish connection using mysqli api
$conn = mysqli_connect('hostname', 'username', 'password', 'database_name');

$sql = "SELECT SQL_CALC_FOUND_ROWS *, post.id as pid, bla bla FROM account ORDER BY pid ASC". $eb["array"]['querylimit'];

$sql2 = "SELECT FOUND_ROWS()";

$result1 = $conn->query($sql);
$result2 = $conn->query($sql2);
$TotalRcount = $result2->fetch_row();

// Performing record count [current]
// $RecordCount = $result->num_rows();

while($row = $result->fetch_array(MYSQLI_BOTH)){
    // read columns
}
Run Code Online (Sandbox Code Playgroud)

在while循环中,我使用了MYSQLI_BOTH常量,但您可以将其更改为MYSQLI_NUM或MYSQLI_ASSOC,无论您需要什么.


ajo*_*jon 0

使用 mysqli,您可以按以下方式执行此操作(假设 mysqli 对象已创建 - 您也可以使用过程方法,只是略有不同):

$sql = "SELECT SQL_CALC_FOUND_ROWS *, post.id as pid, bla bla 
        FROM account ORDER BY pid ASC". $eb["array"]['querylimit'];
$result = $mysqli->query($sql);
$TotalRcount = $result->num_rows;
while($row=$result->fetch_assoc()){
    $col1 = $row['col1'];  // col1 is a placeholder for whatever column you are reading
    //read columns
}
Run Code Online (Sandbox Code Playgroud)