php – 致命错误:在布尔值上调用成员函数fetch_array()
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 致命错误:在布尔值上调用成员函数fetch_array(),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2715字,纯文字阅读大概需要4分钟。
内容图文
![php – 致命错误:在布尔值上调用成员函数fetch_array()](/upload/InfoBanner/zyjiaocheng/709/4e46e116d5f24cceb937b8c0041aaaca.jpg)
我正在尝试执行我的PHP脚本时遇到“致命错误:在boolean in …中调用成员函数fetch_array()”错误.有问题的代码在这里:
function backup()
{
global $mysqli;
$bup = "SELECT p.product_id, p.ean, p.image, p.model, p.status, p.price_sync, p.modified_by, p.date_modified, pd.name, pd.description, pd.language_id, pd.meta_description, pd.meta_keyword, pd.tag FROM oc_product p INNER JOIN oc_product_description pd ON p.product_id = pd.product_id";
$backup = $mysqli->query($bup);
$megainsert = "REPLACE INTO oc_product_backup(product_id, ean, image, model, status, price_sync, modified_by, date_modified, name, description, language_id, meta_description, meta_keyword, tag) VALUES ";
while($row = $backup->fetch_array(MYSQLI_ASSOC))
{
$product_id = $mysqli->real_escape_string($row['product_id']);
$ean = $mysqli->real_escape_string($row['ean']);
$image = $mysqli->real_escape_string($row['image']);
$model = $mysqli->real_escape_string($row['model']);
$name = $mysqli->real_escape_string($row['name']);
$description = $mysqli->real_escape_string($row['description']);
$meta_description = $mysqli->real_escape_string($row['meta_description']);
$meta_keyword = $mysqli->real_escape_string($row['meta_keyword']);
$tag = $mysqli->real_escape_string($row['tag']);
$megainsert .= "('".$product_id."', '".$ean."', '".$image."', '".$model."', '".$row['status']."', '".$row['price_sync']."', '".$row['modified_by']."', '".$row['date_modified']."', '".$name."', '".$description."', '".$row['language_id']."', '".$meta_description."', '".$meta_keyword."', '".$tag."'),";
}
$backup->close();
$megainsert = substr_replace($megainsert, "", -1);
$dobackup = $mysqli->query($megainsert);
if(!$dobackup) return $mysqli->error;
else return true;
}
以下行是问题所在:
while($row = $backup->fetch_array(MYSQLI_ASSOC))
上述函数之前的代码如下:
function clearBackupPrices()
{
global $mysqli;
$clean = "TRUNCATE TABLE oc_product_price_backup";
$doclean = $mysqli->query($clean);
if(!$doclean) return $mysqli->error;
else return true;
}
我研究并用同样的问题研究了其他答案,但没有运气解决它.有人对我的问题有任何建议吗?谢谢大家.
解决方法:
从php documentation开始,MySQLi :: query()将:
Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or
EXPLAIN queries mysqli_query() will return a mysqli_result object. For
other successful queries mysqli_query() will return TRUE.
这意味着以下查询失败(因此使$backup = FALSE而不是解释错误语句的对象):
$mysqli->query($bup);
这反过来意味着sql语句$bup导致错误.我建议您查看它和您的表格.似乎错误不是语法错误(因为语法错误会导致更早的错误消息),这意味着MySQL可以读取您的语句,但由于某种原因操作失败.您将不得不检查您的SQL语句以及您的表,并查看逻辑中的缺陷.
内容总结
以上是互联网集市为您收集整理的php – 致命错误:在布尔值上调用成员函数fetch_array()全部内容,希望文章能够帮你解决php – 致命错误:在布尔值上调用成员函数fetch_array()所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。