Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
创新互联公司服务项目包括雨城网站建设、雨城网站制作、雨城网页制作以及雨城网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,雨城网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到雨城省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
警告:mysql_fetch_array():支持的参数不是一个有效的 MySQL 结果资源。
从错误提示信息来看,应该是
$this-result = mysql_query($sql, $this-conn); // 执行查询语句
这一句执行的结果不正确导致的。
建议:
1. 查看下sql语句是不是正确。
2. 查看 数据库编码 与 html文件 、 html 显示编码三者是否一致。
两边入手,
PHP,需要设置页面编码,加一行代码:
header('Content-Type:text/html;charset=utf-8');
这样就把输出编码改为了UTF-8
但是,MySQL也要设置,那就是连接到数据库之后再加一行
mysql_query("SET
NAMES
`UTF-8`");
即可
当然,你得保证你的数据库的字符集是UTF-8
如果仍然出错,那就说明数据库的字符集配置有问题
header("Content-type: text/html; charset=utf-8");
另外你的编辑器编码也要对应哦
a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加meta http-equiv="Content-Type" content="text/html; charset=gb2312",所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。
b. 如果欲使用utf-8编码,那么php要输出头 :header(“Content-Type: text/html; charset=utf-8"),静态页面添加meta http-equiv="Content-Type" content="text/html; charset=utf-8",所有文件的编码格式为utf-8。
最近需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错。解决方法很简单,就是在 需要转成的编码后加 "//IGNORE" 也就是iconv函数第二个参数后,如下:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
一般来说跟数据库的关系很少,如果你提交的utf8,查询出来还是utf8的所以一般要注意三个地方:发送的编码1.mysql_query("SET NAMES 'gb2312'");2.meta http-equiv="Content-Type" content="text/html; charset=gb2312" /3.页面的格式:查看格式的方式是:用dw打开,在右下角看 三个位置都正确的话,那就不会有乱码了
是乱码问题吗???
在php顶部加入一句: header('Content-type: text/html;charset=utf-8);
PHP写入MySQL数据库
建立conn时,query一下set names
也许是数据库的问题,我也遇到过,我用的是wampserver,界面的工具,直接点鼠标就可能建成mysql数据库,建成后导入数据,查询数据库返回面而的是乱码,我遇到的情况是这样的:
1、建库用gbk,如图。
2、导入表及数据时,默认是utf,此处要改成gbk就不是乱码了,如第图底页面,如果是默认的或是其它的字符集,能导入成功但是乱码。另外直接把sql粘贴到sql窗口,也不是乱码。
希望能帮到你,呵呵~