可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
我有以下php代码
<?php
mysql_connect("localhost","admin","***");
mysql_select_db("DbName");
$sql=mysql_query("select * from `menu`");
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
print(json_encode($output));
mysql_close();
?>
将数据库的编码更改为UTF8-general_ci后,此代码无效。为了使用我的新数据库编码处理我的PHP代码,我该怎么办?
它返回消息:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in
答案 0 :(得分:4)
我的猜测是你的数据库连接仍然是ISO-8859-1,而json_encode()
需要UTF-8数据(如果遇到无效字符,则会中断)。
尝试在连接数据库后发送以下查询:
如果您使用的是mySQL&lt; 5.0.7:
mysql_query("SET NAMES utf8;");
如果您使用的是较新的mySQL:
mysql_set_charset("utf8");