【发布时间】:2013-03-02 04:50:05
【问题描述】:
我正在尝试在 Cakephp 中创建自己的 MySQL 查询。
这是我的LocationsController.php:
<?php
App::uses('Location', 'Model');
class LocationsController extends AppController
{
public $helpers = array('Html', 'Form');
function index()
{
$this->loadModel("Location");
$this->Location->get();
}
}
这是我的LocationModel.php:
<?php
App::uses('AppModel', 'Model');
class LocationModel extends Model {
public $name = 'Location';
public function get()
{
$this->Location->query("SELECT * FROM locations;");
}
}
如您所见,我只是想执行一个简单的查询,但它不起作用。我收到此错误:
Error: SQLSTATE[42000]: Syntax error or access violation: 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 'get' at line 1
当我使用 find("all") 之类的魔法方法之一时,它会起作用...
你能看出问题所在吗?我真的做不到,我只是想做一个简单的任务!
【问题讨论】:
-
如果你是
Location模型,那不就是$this->query('SELECT * FROM locations');吗? -
检查下面的答案,让我知道接下来会发生什么!
-
当您已经获得位置模型并且可以执行
find(all)时,我看不出有任何合理的理由在这里使用自定义查询...您应该始终问自己是否真的必须使用自定义查询.然后你会发现你从来没有真正需要它们。
标签: php mysql cakephp model controller