在域上上传后,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
时使用了大写和小写的表名:
将JOIN
的ON
部分中的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 并跨子域读取它