-6ren">
gpt4 book ai didi

php - 如何在 CakePHP 中创建自定义 MySQL 查询?

转载 作者:可可西里 更新时间:2023-11-01 06:41:59 25 4
gpt4 key购买 nike

我正在尝试在 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 模型的类名应该是 Location,而不是 LocationModel

因此,CakePHP 将为 Locations 数据库表生成一个“通用”模型,并使用该模型而不是您自己的模型。因为这个泛型模型没有有一个get()方法,所以它会把get当作一个SQL语句来执行,从而导致错误

此外,在模型内部,您不应使用 $this->Location->query();,而应使用 $this->query();

关于php - 如何在 CakePHP 中创建自定义 MySQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15170852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com