如何在没有模型的情况下在CakePHP中手动执行SQL查询

Jam*_*s J 7 cakephp cakephp-1.3

我正在写一个快速的一次性方法来将用户从旧表导入我的新蛋糕应用程序.我已将旧用户表(old_users)导入到我的蛋糕应用程序数据库中.基本上我只需要在old_users表中选择all,然后循环遍历它们并使用像$ newuser-> create('old_username','old_password')之类的东西将它们添加到新用户表中;

但是,我不想为临时表创建模型等,因为此导入只会运行一次.所以我的问题是 - 如何进行基本选择以从用户控制器中的蛋糕方法获取此表中的所有用户.我在想这样的话:

public function admin_importOldUsers() {
        $db = $this->getDataSource();
        $db->fetchAll('SELECT * FROM old_users');
    }
Run Code Online (Sandbox Code Playgroud)

但它失败了,错误:

调用未定义的方法UsersController :: getDataSource()

我在文档中找不到如何从控制器中查询另一个db表(没有模型)....

有人能指出我正确的方向吗?

提前致谢

Bad*_*sie 10

要在没有模型的情况下在CakePHP中手动运行标准SQL查询,可以query在控制器可用的任何模型上使用该方法(与您使用的模型无关):

class MyController extends AppController
{
    public function index()
    {
        $result = $this->AnyModel->query("SELECT * FROM my_table");
    }
}
Run Code Online (Sandbox Code Playgroud)

CakePHP 1.3 - 模型


Sam*_*uyn 8

有关该部分的文档不正确.在database.php文件中找到连接的名称,并使用以下代码(我的默认设置):

$db = ConnectionManager::getDataSource("default"); // name of your database connection
$places_of_interest = $db->fetchAll("SELECT * FROM places_of_interest");
Run Code Online (Sandbox Code Playgroud)