你好我是cakephp的新手2.我想知道,如何在一个控制器中连接到数据库并为每个控制器循环。请帮我详细说明。
我已经在数据库配置中设置了以下内容:
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'db_one',
'prefix' => '',
//'encoding' => 'utf8',
);
public $database2 = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'db_announcement',
'prefix' => '',
//'encoding' => 'utf8',
);
答案 0 :(得分:0)
你应该在google中进行更多的研究,然后再在这里提问。
无论如何,CakePHP采用默认的数据库连接,它位于core.php的核心文件夹中,因此您在数据库中执行的所有查询都是在database.php中默认定义的,如果要连接多个数据库而不是你可以尝试这样的事情。
在您的数据库配置文件中:
public $database2 = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '*******',
'database' => '*****',
'prefix' => '',
'encoding' => 'utf8',
);
在您的控制器中,您可以通过这种方式建立连接:
$db = ConnectionManager::getDataSource('user');
$list = $db->rawQuery('your query'); or customized CakePHP queries can work here too
我希望你能从中得到答案。
由于 $ I = 0; $总= $列表 - >使用fetchall(PDO :: FETCH_ASSOC);
答案 1 :(得分:0)
而不是getDataSource
方法我建议使用$this->ModelName->setDataSource('mongo');
例如,如果要从database.php中提到的'mongo'数据库源的用户模型中获取数据,则设置它看起来像。
$这 - >用户 - >的setDataSource( '蒙戈')
在database.php中你有以下代码
public $mongo = array(
'datasource' => 'Mongodb.MongodbSource',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => 'root',
'database' => 'mongo_data',
'prefix' => '',
'encoding' => 'utf8',
);