首页建站经验 解决Ecshop网站迁移后出现Unknown column ‘****’ in ‘where clause’

解决Ecshop网站迁移后出现Unknown column ‘****’ in ‘where clause’

Echop是一款非常不错的网店开源程序,它的用户面量很大,今天在帮一个用户迁移的时候出现了一个很不常见的错误,“MySQL server error report:Array…..” 详细如下:问题现象网站…

Echop是一款非常不错的网店开源程序,它的用户面量很大,今天在帮一个用户迁移的时候出现了一个很不常见的错误,“MySQL server error report:Array…..” 详细如下:

问题现象

网站在迁移后,访问后台正常,访问首页出现如下报错。数据库保证没有缺少。

MySQL server error report:Array ( [0] => Array ( [message] => MySQL Query Error )

[1] => Array ( [sql] => SELECT c.cat_id, c.cat_name, c.sort_order, a.article_id,

a.title, a.file_url, a.open_type FROM `s5jg****_data`.`teashop_article` AS a LEFT

JOIN `s5jgj****_data`.`teashop_article_cat` AS c ON a.cat_id = c.cat_id WHERE

c.cat_type = 5 AND a.is_open = 1 AND C.cat_id != 14 ORDER BY c.sort_order ASC,

a.article_id ) [2] => Array ( [error] => Unknown column 'C.cat_id' in 'where clause' )

[3] => Array ( [errno] => 1054 ) )

现象分析

一般情况下,我们的网站报Unknown column ‘****’ in ‘where clause’我们开始都会想到,是不是网站在迁移的过程中,数据库出现了丢失。

在重新下载数据库,导入之后。可以完全确定数据库是没问题的。那么,这会是什么问题呢。小编在查询相关资料后,总结出现以上问题主要有以下几个方面:

1、teashop_article表中确实缺少这个列。

2、teashop_article 表前面多了一个小的可以忽略的空格,没有看到。

3、php中的sql字符串,字段变量或者关键字用的双引号。比如:WHERE products_id = “test”,将test旁边的双引号,改成单引号就可以。

4、linux主机对文件名大小写比较敏感,PHP程序中,或者数据库的列名是大写。

问题解决

明白了是什么原因造成,问题就很容易解决了。我们仔细看一下上面的那个错误提示,发现“Unknown column ‘C.cat_id’ in ‘where clause’”里的列名里的C是大写的.

而小编辑在本地测试的是纯正是linux系统,所以可以肯定是因为用户修改了自己的程序,语句中编写不规范导致。我们把用户修改过的文字main.php替换为安装包中默认文件就解决问题了 。

本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: https://www.1cn.cc/jianzhan/jingyan/16374.html
上一篇网站开发php的facebook快捷登陆时常见问题
下一篇 Ecshop程序网站后台商品品牌搜索时记录为0解决办法
admin

作者: admin

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部