Fatalerror:Calltoamemberfunctionfetch_array()onanon-object错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Fatalerror:Calltoamemberfunctionfetch_array()onanon-object错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2629字,纯文字阅读大概需要4分钟。
内容图文
include_once ('conn.php');//error_reporting(0);@$shops_name= $_GET["shops_name"];if (isset($shops_name)) { echo $shops_name; $query = "SELECT * FROM goods WHERE ShopName= '$shops_name'"; @$q = $conn->query($query); while($row=$q->fetch_array()) { $select[]=array("goods_id"=>$row[ID],"goods_name"=>$row[Name]); } echo json_encode($select);}
将@query 复制到mysql查询成功。可是在这里失败了,求解。
回复讨论(解决方案)
贴出你的 conn.php
$conn = new mysqli("localhost","root","zxfang","test02");
if (!$conn) {
die("连接数据库失败:".mysqli_connect_error());
}
$conn->query("set character set 'gbk'");
$conn->query("set names 'gbk'");
?>
$q = $conn->query($query);
echo $q = $conn->error;
$q = $conn->query($query);
echo $q = $conn->error;
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for operation '=
什么意思??
修改表字段编码后没有 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for operation '= 了,可还是Fatal error: Call to a member function fetch_array() on a non-object
@$q = $conn->query($query);
改为
$q = $conn->query($query) or die($conn->error);
看看有什么错误输出。
估计你的sql执行有问题。
@$q = $conn->query($query);
改为
$q = $conn->query($query) or die($conn->error);
看看有什么错误输出。
估计你的sql执行有问题。
原表有
Illegal mix of collations (utf8_general_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for operation '=' 错误。
表字段编码改成gbk后 $conn-error就没错误输出了,可还是有Fatal error: Call to a member function fetch_array() on a non-object 。
不要随意的修改有数据的表的字符集,因为修改字符集的动作并不会同时修改内容的字符集
请改回盐来得字符集设置,以免数据丢失!
$query = "SELECT * FROM goods WHERE ShopName= '$shops_name'";
后
echo base64_encode($query);
贴出结果(当然是要是出错时候的)
不要随意的修改有数据的表的字符集,因为修改字符集的动作并不会同时修改内容的字符集
请改回盐来得字符集设置,以免数据丢失!
$query = "SELECT * FROM goods WHERE ShopName= '$shops_name'";
后
echo base64_encode($query);
贴出结果(当然是要是出错时候的)
U0VMRUNUICogRlJPTSBnb29kcyBXSEVSRSBTaG9wTmFtZT0gJ+W6lzEn
echo base64_decode('U0VMRUNUICogRlJPTSBnb29kcyBXSEVSRSBTaG9wTmFtZT0gJ+W6lzEn');
gbk 环境中: SELECT * FROM goods WHERE ShopName= '搴?1'
utf-8 环境中: SELECT * FROM goods WHERE ShopName= '店1'
显然你传入的就是 utf-8 编码的数据
你还当做 gbk 编码处理($conn->query("set names 'gbk'");)能不出错吗?
哦,原来是这样,我对于编码一直都不是很了解。
好了,问题解决了,谢谢版主。
内容总结
以上是互联网集市为您收集整理的Fatalerror:Calltoamemberfunctionfetch_array()onanon-object错误全部内容,希望文章能够帮你解决Fatalerror:Calltoamemberfunctionfetch_array()onanon-object错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。