A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 源码技巧 > Ecshop > 解决Ecshop网站迁移后出现Unknown column ‘****’ in ‘where clause’

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

时间:2015-04-22 13:43作者:zhao人气:508

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替换为安装包中默认文件就解决问题了 。

标签解决,Ecshop,网站,迁移,出现,Unknown,col

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号