2

我们的站点在旧服务器上运行良好,但我们最近将它移到了新服务器上,并且立即,站点上的所有内容看起来都一团糟(即在视图中找不到它正在寻找的数据)。

经过进一步调查,之前返回的内容是这样的:

$articles[0]['Article']['title']

现在正在返回:

$articles[0][0]['title']

起初,我们被告知 PDO 未安装(或已损坏或其他原因),但我们一遍又一遍地使用 PDO 重建 Apache,它显示 PHP 和 MySQL 都启用了 PDO。

我试过搜索,但要么我在搜索错误的东西,要么那里没有好的信息。有什么想法可能导致这种情况和/或我们如何解决它?


编辑:

它在更新之前也可以在此服务器上运行,更新到 5.3(不确定之前的版本是什么)

编辑 2

根据建议,我将数据源更改为HpMysql 这使其工作。但它并没有回答我的问题,因为我认为它是一个临时修复 - 我仍然想知道问题是什么,以及如何在不必使用此解决方法的情况下修复它。

4

1 回答 1

1

原始海报(我)的回答:

据我们的服务员说,“加载PDO有两种方式。第一种是使用easyapache安装PDO php扩展。第二种是通过PECL安装PDO。看起来问题模块不同。”

显然,这台服务器上有 PECL,而不是普通的 easyapache PDO。当他删除它并使用easyapache PDO重新启动/重置它时,一切都很好。

所以 - 听起来像 CakePHP 需要“正常”的 PDO。

谜团已揭开。

如果您有 PECL,则可以使用此解决方法:

在您的数据源文件夹中创建一个文件“HpMysql.php”并添加此代码/类:https ://github.com/lorenzo/HipHop/blob/master/Model/Datasource/Database/HpMysql.php

将你的 database.php 'datasource' 更改为 'HpMysql'


不同的问题:(原来是相同的答案):

$this->Auth->login() 创建返回 1 行的正确查询,但 IF 检查失败(服务器特定问题)

于 2012-07-17T15:11:56.597 回答