mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given

<?php
//1传入页码
$page=$_GET['p'];
//2根据页码取出数据 php->mysql处理
$host="localhost";
$username="root";
$password="123456";
$database="text";
$mysqli = new mysqli($host, $username, $password, $database);
if(mysqli_connect_errno($mysqli)){
echo'fail';
exit;
}
//选择数据库
mysqli_select_db($mysqli,$database);
//设置数据库编码格式
$mysqli->set_charset("UTF8");
/*编写sql获取分页数据 SELECT*FROM 表名 LIMIT 起始位置,显示条数*/
$sql="SELECT*FROM 'page' LIMIT".($page-1)*10 .",10";
/*把sql语句传送到数据库*/

$result=mysqli_query($mysqli, $sql);

/*处理数据*/
while (($row = mysqli_fetch_assoc($result)) !=FALSE){
echo $row['id'].'-'.$row['name'];
}
最新回答
心病沒药医

2026-05-06 00:26:15

sql语句
写错了,你把sql 打印出来放到数据库里执行一下会发现sql报错

正确的$sql="SELECT * FROM page LIMIT ".($page-1)*10 .",10";

另外不建议 mysqli的

面向对象
风格和
面向过程
混合使用,下面是面向对象风格

$mysqli = new mysqli($host, $username, $password, $database);
if($mysqli->connect_errno){
    echo'fail';
    exit;
}
//设置数据库编码格式
$mysqli->set_charset("UTF8");
/*编写sql获取分页数据 SELECT*FROM 表名 LIMIT 起始位置,显示条数*/
$sql="SELECT * FROM page LIMIT ".($page-1)*10 .",10";
/*把sql语句传送到数据库*/
$result=$mysqli->query($sql);
/*处理数据*/
while ($row =$result->fetch_assoc()){
    echo $row['id'].'-'.$row['name'];
}