此代码以前是在mysql中,现在因为它已被弃用,我决定在mysqli中转换我的代码,但我在我的页面中存在这个问题,其中有分页,在它与mysql一起使用之前没有错误,但现在我在这一行中收到错误:
警告:mysqli_fetch_assoc()需要1个参数,2个给定
错误是显而易见的,我知道,但我不知道如何以另一种方式做到这一点,因为之前我在该行的代码是
$pages = ceil(mysql_result($pages_query, 0) / $limit); // total number of pages
我也试过这个
$pages = ceil($pages_query / $limit); // total number of pages
但我收到此错误
注意:类mysqli_result的对象无法转换为int
所以我想知道如何将mysql_ * mysql_result转换为mysqli?还是有其他办法吗?
到目前为止,我的代码是:
<?php
include 'dbcontroller.php';
$limit = 10; // limit the number of post per page
$pages_query = mysqli_query($conn, "SELECT COUNT('id') FROM news");
$pages = ceil($pages_query / $limit); // total number of pages
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $limit; // set the page to 0
$query = mysqli_query($conn, "SELECT * FROM news ORDER BY date DESC LIMIT $start, $limit");
while($row = mysqli_fetch_array($query)) {
....
}
?>
答案 0 :(得分:1)
问题在于此行,您无法在不提取数据的情况下直接使用mysqli_query()
$pages = ceil($pages_query / $limit); // total number of pages
<强> mysqli_query() 强>
失败时返回FALSE。成功的SELECT,SHOW,DESCRIBE或 EXPLAIN查询mysqli_query()将返回一个mysqli_result对象。
所以它会是
$pages_query = mysqli_query($conn, "SELECT COUNT('id') FROM news");
您需要从查询对象中获取数据
$row = mysqli_fetch_array($pages_query);// fetch fata
$ic = $row[0];
$pages = ceil($ic / $limit); // total number of pages