在过去的几个月里,我一直在开发一个 CakePHP 应用程序,并最终将它放在 Internet 上的测试服务器上。安装它并生活起来相当容易,而且它在一定程度上起作用。
有一个与服务器的数据库连接,应用程序可以从数据库中检索数据。但是,一些页面现在返回 SQL 错误,如下所示:
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'personel.companyid' in 'where clause'
我认为这可能是应用程序的错误,所以我重新检查了我的本地副本,本地副本工作正常。然后,我检查了测试服务器上的数据库模式,以查看在我收到这些错误的所有情况下是否确实存在该列。显然未知的列在那里,包括我本地数据库的副本。
我对为什么会发生这种情况感到困惑。我的本地机器和我的测试服务器之间唯一不同的是,我在 XAMPP 设置下的 Windows 计算机上本地开发了站点,并且测试服务器在 Linux (CentOS) VPS 上运行。
还有其他可能导致此问题的原因吗?
编辑:*
这是两个失败的查询:
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'personel.companyid' in 'where clause'
SQL Query: SELECT `Personel`.`id`, `Personel`.`firstname`, `Personel`.`surname`, `Personel`.`email`, `Personel`.`companyid`, `Personel`.`accesslevel`, `Personel`.`poc`, `Personel`.`password`, `Personel`.`telephone`, `Accesslevel`.`id`, `Accesslevel`.`acclevname` FROM `personel` AS `Personel` LEFT JOIN `accesslevels` AS `Accesslevel` ON (`Personel`.`accesslevel` = `Accesslevel`.`id`) WHERE `personel`.`companyid` = 1
和这个:
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'personel.companyid' in 'where clause'
SQL Query: SELECT `Personel`.`id`, `Personel`.`firstname`, `Personel`.`surname`, `Personel`.`email`, `Personel`.`companyid`, `Personel`.`accesslevel`, `Personel`.`poc`, `Personel`.`password`, `Personel`.`telephone`, `Accesslevel`.`id`, `Accesslevel`.`acclevname` FROM `personel` AS `Personel` LEFT JOIN `accesslevels` AS `Accesslevel` ON (`Personel`.`accesslevel` = `Accesslevel`.`id`) WHERE `personel`.`companyid` = 1