我在 CakePHP google-group 上问了这个问题,但没有找到任何解决方案,所以希望在这里能有更好的运气。
我已经在 CakePHP 上开发了一段时间,并决定在 MAMP 上有一个本地主机版本,这样我就可以在不依赖 Internet 连接的情况下向人们演示我的应用程序。
我们有几个复杂的 MySQL 查询,并使用
$this->query('SELECT...');
我们已将它们放置在函数中的适当模型中,以从控制器中删除所有这些逻辑。因此,从控制器我们将有类似的东西
$this->Users->getMeSomething($variable);
,进入 user.php 模型并运行该函数。这在我们的实时和开发站点上运行良好,但由于某种原因,在 MAMP 上,每当进行这种类型的调用时,我都会遇到错误,作为其中一个调用的示例:
错误:
Warning (512): SQL Error: 1064: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the
right syntax to use near '__getUsersForUsers' at line 1 [CORE/cake/
libs/model/datasources/dbo_source.php, line 525]
语境:
DboSource::showQuery() - CORE/cake/libs/model/datasources/
dbo_source.php, line 525
DboSource::execute() - CORE/cake/libs/model/datasources/
dbo_source.php, line 201
DboSource::fetchAll() - CORE/cake/libs/model/datasources/
dbo_source.php, line 336
DboSource::query() - CORE/cake/libs/model/datasources/dbo_source.php,
line 297
Model::call__() - CORE/cake/libs/model/model.php, line 441
Overloadable::__call() - CORE/cake/libs/overloadable_php5.php, line 52
AppModel::__getUsersForUsers() - [internal], line ??
UsersController::view() - APP/controllers/users_controller.php, line
401
Object::dispatchMethod() - CORE/cake/libs/object.php, line 118
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 227
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 194
[main] - APP/webroot/index.php, line 88
webroot 上的第 88 行是这样的: $Dispatcher->dispatch($url);
我已经尝试过 CakePHP 的 1.2 和 1.2.5。MAMP 上的 MySQL 是 5.1.31,在我的主机 MediaTemple 上是 5.1.26-rc
谢谢你的帮助