Php PDO列没有';当它存在时,它不存在吗?

Php PDO列没有';当它存在时,它不存在吗?,php,sql,pdo,Php,Sql,Pdo,我最近上传了我的网站到我的主机提供商,我得到了一个非常奇怪的错误 我已将与我在本地计算机上使用的数据库完全相同的数据库导入到web主机,它告诉我: 警告:PDOStatement::execute():SQLSTATE[42S22]:未找到列: 1054中“字段列表”中的未知列“toppers\u types.urlPath” /home/users/xxxxx/html/caketopper.co.uk/public_html/models/GalleryModel.php 第32行 奇怪的是

我最近上传了我的网站到我的主机提供商,我得到了一个非常奇怪的错误

我已将与我在本地计算机上使用的数据库完全相同的数据库导入到web主机,它告诉我:

警告:PDOStatement::execute():SQLSTATE[42S22]:未找到列: 1054中“字段列表”中的未知列“toppers\u types.urlPath” /home/users/xxxxx/html/caketopper.co.uk/public_html/models/GalleryModel.php 第32行

奇怪的是,这个列确实存在,我100%连接到正确的数据库

以下是相关SQL:

SELECT toppers.name, toppers.urlName, md.description, toppers_images.thumbSrc,
toppers_types.urlPath
FROM toppers_images, toppers_types, toppers
LEFT JOIN meta_descriptions AS md ON md.topperId = toppers.id
WHERE toppers_images.topperId = toppers.id
AND toppers_types.id = toppers.typeId
AND isPrimary = 1
如果我接受该SQL并将其放入webhost上的phpmyadmin中,查询将按预期运行,并得到结果

我正在使用PDO执行查询:

$r = $this->db->prepare($SQL) ;
$r->execute($PDOParams) ;
return $r->fetchAll(PDO::FETCH_OBJ) ;

以前有人遇到过这样的异常情况吗?如果是这样的话,我该如何解决呢?

关于Stackoverflow有很多这样的问题,几乎所有的问题都以相同的方式结束:
-哦,我忘了更新实际的数据库(重命名字段,保存正确的文件等)

字母大小写也可能存在问题(Unix版本区分大小写,而Windows one不区分大小写)。
不管怎样,只要测试一切

使用PDO运行此查询并查看结果

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'toppers_types'
如果字段不存在-请检查服务器凭据等

如果存在-将其名称复制粘贴到查询中

在Stackoverflow上存在大量此类问题,几乎所有问题都以相同的方式结束:
-哦,我忘了更新实际的数据库(重命名字段,保存正确的文件等)

字母大小写也可能存在问题(Unix版本区分大小写,而Windows one不区分大小写)。
不管怎样,只要测试一切

使用PDO运行此查询并查看结果

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'toppers_types'
如果字段不存在-请检查服务器凭据等

如果存在-将它的名称复制粘贴到查询中

我甚至不喜欢这样建议,但是…如果您快速尝试使用
mysql.*
函数测试相同的查询,会发生什么情况?如果它成功了,那就表明这是PDO或其配置方式的问题。如果失败,则表明问题出在数据库连接本身。@Matchu它会清除错误消息,但没有结果。您能发布架构的相关部分吗?我假设您已经仔细检查了表名和列名是否正确。我甚至不想提出类似的建议,但是……如果您快速尝试使用
mysql\uu*
函数测试同一查询,会发生什么情况?如果它成功了,那就表明这是PDO或其配置方式的问题。如果失败,则表明问题出在数据库连接本身。@Matchu它会清除错误消息,但没有结果。您能发布架构的相关部分吗?我假设您已经仔细检查了表和列名是否正确。我将查询放入脚本中,它不会返回列。@imperium2335正如我在原始问题中所说的,您绝对确定列名正确吗?你仔细检查了拼写和大写字母了吗?您是否查看了表的架构并检查了它实际拥有的列是否与您认为它拥有的列相同?此外,请尝试通过MySQL shell或类似Yog或PHPMyAdmin的工具而不是通过脚本运行这些查询。我将查询放入脚本中,它不会返回列。@imperium2335正如我在原始问题中所说,您是否绝对确定列名正确?你仔细检查了拼写和大写字母了吗?您是否查看了表的架构并检查了它实际拥有的列是否与您认为它拥有的列相同?另外,尝试通过MySQL shell或类似于Yog或PHPMyAdmin的工具(而不是通过脚本)运行这些查询。