在域上上传后,MySql 无法识别某些表列

Posted

技术标签:

【中文标题】在域上上传后,MySql 无法识别某些表列【英文标题】:MySql is not recognizing some Table Columns after uploading on Domain 【发布时间】:2014-10-03 20:54:05 【问题描述】:

我使用 codeigniter 框架创建了一个网站。它在本地主机上工作得很好。查询正在获取数据并显示所需的结果。但是在我将网站上传到我的域后,它会给出奇怪的错误消息。相同的查询在 localhost 上运行良好,但在域数据库 phpMyAdmin 上生成错误消息。

一些查询工作正常,例如用户登录查询和其他一些基本查询,但包含复杂连接的查询仅在域上生成错误消息..

以下查询在 localhost 上运行良好,但在 Domain DB 上生成缺失列错误消息。

Error Number: 1054

Unknown column 'Semester_courses.SemisterCourseId' in 'on clause'

SELECT sum( student_marks.FinalMarks ) , semester_courses.in_semester, 
student_marks.StudentId FROM student_marks 
JOIN semester_courses
ON student_marks.SemisterCourseId = Semester_courses.SemisterCourseId 
WHERE 
semester_courses.in_semester =1 
GROUP BY semester_courses.in_semester , student_marks.StudentId 
order by student_marks.FinalMarks Desc 
Limit 0,1

Filename: /home/tahakirmani/public_html/ums/models/loginmodel.php

Line Number: 1523 

【问题讨论】:

DESCRIBE Semester_courses; 的输出是什么(还要注意该输出的大小写)?你的GROUP BY 建议semester_courses 应该是小写,而你的ON 应该是大写。 #1146 - 表“secs.Semester_courses”不存在 【参考方案1】:

您在查询semester_courses 时使用了大写和小写的表名:

JOINON 部分中的Semeter_courses 更改为小写,您应该没问题(假设您的字段名称拼写正确):

SELECT sum( student_marks.FinalMarks ), semester_courses.in_semester, student_marks.StudentId
FROM student_marks 
JOIN semester_courses
ON student_marks.SemisterCourseId = semester_courses.SemisterCourseId 
WHERE semester_courses.in_semester = 1 
GROUP BY semester_courses.in_semester, student_marks.StudentId 
ORDER BY student_marks.FinalMarks DESC;

【讨论】:

谢谢..我只是复制并粘贴您的代码并得到结果,没有任何错误消息,但我仍然无法理解为什么它在 localhost 上工作正常? 可能是其他 mysql 设置(或者您是否从 windows 机器减轻到 unix 机器?) 我在我的系统上使用 windows,在我的虚拟主机服务器上使用 linux。 大概就是这样。表名(及其文件)在 Windows 上不区分大小写,但它们在基于 unix 的机器上。

以上是关于在域上上传后,MySql 无法识别某些表列的主要内容,如果未能解决你的问题,请参考以下文章

在域上创建 JavaScript cookie 并跨子域读取它

NextJS 无法在域上禁用重定向

地理插件 API 有时无法在域上运行

如何使 PHP 服务器 websocket 在域上工作?

自从有了我的 Mac 后,Android Studio 项目无法识别某些类

CxFreeze 无法识别某些进口