mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in ...报错的意思是?
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'];}
上面的错误提示,是指出 mysql_fetch_assoc 这个函数的第一个参数应该是个资源句柄,而在实际执行过程中,这个值实际上是个boolean(布尔值)。
这个问题的原因,通常是由于你用 query 获取数据库中的数据时,并没有得到一个正确的结果,而是出现了错误。
建议检查query(或其他操作)得到的 $result 中的结果内容。
1、首先在mysql数据库连接时碰到Warning: mysql_fetch_array() expects ...错误提示,根据我的经验这个是sql返回的query为空了,我们没有加己判断直接使用了。mysql_fetch_array()函数导致的。
2、然后会出现提示错误了:Warning: mysql_fetch_array() expects parameter 1 to be resource。
boolean given in F:xmappmylibrarysearch_result.php on line 32。
接着我们进行对代码进行升级即可。
3、最后一步就是在$data = mysqli_query($dbc, $query);后加上这样一段代码。
if (!$data) { printf("Error: %s
", mysqli_error($dbc)); exit()。
亲,我回答已经是一年后,因为我也遇到了同样的问题,但我今天幸运的把它解决了。
出现这个问题是因为查询出现了问题,查询失败,那么你应该查找错误出现在了什么地方,在$data = mysqli_query($dbc, $query);后加上这样一段代码,就能清楚的知道查询出现了什么问题,
if (!$data) {
printf("Error: %s\n", mysqli_error($dbc));
exit();
}
希望你能解决问题。
$query = "SELECT o_id, o_name, category, room, onoff " .
"FROM object " .其实问题出在这里,其实只要这样写就ok了$query = "SELECT o_id, o_name, category, room, onoff " .
"FROM object "
如果不仔细看的话确实发现不了这个问题,其实问题就是在拼接字符串的时候前面这个字符串最后并没有把空格拼接进去,也就导致实际上在数据库执行的语句from前面是没有空格的,所以只要在from前面或者onoff后面添加上一个空格就好了
同样被折磨。。。最后解决了,是复制query的时候会复制进去一些看不见的码!!!手打一遍报错的地方就可以了
这么好看了还是不一样呢!
拔看沃丽: $query=mysqli_query($db,$query);//删除:$result=mysqli_fetch_array($query);//理由:mysqli_fetch_array 是循环数据库查询结果集的函数,一般是将对象用数组输出.这里的执行结果显然不是数组,或者对象,而是布尔型值.//isset($result) 改为:$query//理由:mysqli_query执行成功失败返回的都是布尔型,固也就是true 或者 false ,执行成功了就是true 失败就是false//再修改判断语句如下:if ($query) {echo'插入成功';} else {echo '插入失败';} }
武宣县18677417680: php程序本机测试正常,放到服务器报mysqli - fetch - array() 错误 - ?
拔看沃丽: 意思是说你传入到mysqli_fetch_array这个函数的【参数类型】不是mysqli_result而是一个objet 检查一下你的mysqli_query($sql)的输出结果$res = mysqli_query($sql); var_dump($res);//如果dump出来的结果是#id Resource证明就是正确的//如果不是,90%的错误是你的sql有语法错误,继续dump var_dump($sql);//将输出的sql复制到mysql client的命令行界面,看看是否报错
武宣县18677417680: PHP Warning: mysqli - fetch - array() expects parameter 1 to be mysqli - result, array given in是什么原 - ?
拔看沃丽: PHP的mysqli_fetch_array()函数有两个参数. 第一个是由mysqli_query(),mysqli_store_result() 或 mysqli_use_result()返回的结果集标识. 第二个是设定当前行数据生成哪种类型的数组.此参数的范围是常量MYSQLI_ASSOC, MYSQLI_...
武宣县18677417680: mysql - fetch - array与mysql - fetch - row用法的区别是什么? mysql - fetch - array与mysql - fetch - row用法的区别是 - ?
拔看沃丽: mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本.除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名. 即:mysql_fetch_array返回的结果中,不仅可以通过数字索引方式如result[0],...
武宣县18677417680: @mysql - fetch - array代表什么意思??
拔看沃丽: 其实@的意思是:[*]$old = error_reporting(0);[*]your php codeerror_reporting($old);
武宣县18677417680: 为什么总是提示 mysql - fetch - array():提供参数不是一个有效的MySQL结果资源 - ?
拔看沃丽: $name=$_POST[name];改成$name=$_POST['name'];例外,确定$name不为空 问题的原因是mysql_query()函数没有执行成功 可以输出mysql_error()错误信息看看是什么错误
武宣县18677417680: sql语句是执行insert那么将数据变成数组是不是就不能用mysqli - fetch - array()了,那用什么呢? - ?
拔看沃丽: 执行insert命令,返回true or false 表示成功或失败 可以用insert_id() 函数取到插入的记录自增长的ID 去其他数据要重新执行select语句
武宣县18677417680: mysql - fetch - array()无法使用 - ?
拔看沃丽: 你在MySQL控制台执行一下:select COUNT(*)as count from click where user_id=1,会报错的!修改成:select COUNT(*) as count from click where user_id=1 右小括号错了!
武宣县18677417680: php的mysql - fetch - array函数到底怎么用啊? - ?
拔看沃丽: $result = mysql_query("ELECT username,yhzfmm FROM xly_yhzl WHERE username = 'zwj0936' AND yhzfmm = '870802'"); 这句中的SQL语句应当是SELECT,不是ELECT 既然用if(!$GLOBALS) echo "连接数据库失败!";判断连接是否...
武宣县18677417680: $a=mysql - fetch - array($query); while($a){} 和 这个 while($a=mysql - fetch - array($query)){} 有什么区 - ?
拔看沃丽: 首先说一下,mysql_fetch_array() 的参数要求传入一个 $result 这一类型的,我不知道你的 $query 变量是什么,如果是一个 sql 语句的字符串,估计第一行就报错了,应该先 $result = mysql_query($query); .说回正题,mysql_fetch_array() ...