doure5236 2016-04-21 13:08 采纳率: 0%
浏览 166
已采纳

在Yii2中使用预加载的连接实例

I'm new to Yii, and experimenting with yii2's createCommand(), for this I've to create a new instance of the class yii\db\connection,

Here is an action in my controller,

public function actionDues($student_id){

    $connection = new \yii\db\Connection([
        'dsn' => 'mysql:host=localhost;dbname=db_school',
        'username' => 'root',
        'password' => '',
        'enableSchemaCache' => true,
    ]);
 $sql = 'select * from group_fees where group_id in (select group_id from group_subscriptions where subscriber_id='.$student_id.')';
 $command = $connection->createCommand($sql)->queryAll();

}

Am I right in thinking that there must be a connection instance already loaded, which I can use, instead of creating a new instance of the yii\db\connection class as above?

  • 写回答

2条回答 默认 最新

  • duanchun2349 2016-04-21 14:08
    关注

    The db connection istance is normally create during the application boostrap phase by yii2 for this you set the related param in config/main.php or main-local (yii2-advanced template) or config/web.php -> db.php (in yii2 basic template)

       'components' => [
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=your_host;dbname=your_dbdame;port=3306',
            'username' => 'root',
            'password' => 'your_pwd',
            'charset' => 'utf8',
            'enableSchemaCache' => true,            
        ],
    

    and with this configuration you can use the db connection this way

    $sql = "select a,b, from ..... your sql command';
    
    Yii::$app->db->createCommand($sql)->execute()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥150 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装