直接实例化 yii\db\Connection类;
$db = new yii\db\Connection([
'dsn' => 'mysql:host=localhost;dbname=example',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
]);
或者以组件方式调用 \YII::
app−>db;调用其他数据库连接\YII::
a
p
p
−
>
d
b
;
调
用
其
他
数
据
库
连
接
\YII
::
app->db2;
在配置文件中
return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=192.168.43.200;dbname=shop',
'username' => '***',
'password' => '***',
'charset' => 'utf8',
],
'db2' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=192.168.43.201;dbname=shop',
'username' => '***',
'password' => '***',
'charset' => 'utf8',
],
]
调用 Yii::$app->db->createCommand('SELECT * FROM post')->queryAll();
来直接获取数据
配置表前缀:
return [
// ...
'components' => [
// ...
'db' => [
// ...
'tablePrefix' => 'tbl_',
],
],
];
查询中使用表前缀 Yii::$app->db->createCommand("SELECT COUNT([[id]]) FROM {{%employee}}")->queryScalar()
$db = Yii::$app->db;
$transaction = $db->beginTransaction();
try {
$db->createCommand($sql1)->execute();
$db->createCommand($sql2)->execute();
// ... executing other SQL statements ...
$transaction->commit();
} catch(\Exception $e) {
$transaction->rollBack();
throw $e;
}
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=192.168.43.200;dbname=shop',
'username' => '***',
'password' => '***',
'charset' => 'utf8',
// 从库的通用配置
'slaveConfig' => [
'username' => '***',
'password' => '***',
'attributes' => [
// 使用一个更小的连接超时
PDO::ATTR_TIMEOUT => 10,
],
],
'slaves' => [
['dsn' => 'mysql:host=192.168.43.201;dbname=shop'],
['dsn' => 'mysql:host=192.168.43.202;dbname=shop'],
],
],