yii2怎么连接sql server

yii2怎么连接sql server,第1张

在saas中,多租户数据库分库管理时常常需要自定义数据库链接,并且需要支持在框架加载后再调用数据库连接

Yii2 如何定义数据库连接要注意的是:

即除了使用/Yii::app&#8722>set()外,还需要再多使用下面一句话:/Yii::app->$database->open() 

因为在框架加载后再调用时,yii本身并不会帮打开连接。使用如下代码:

<?php/** * User: chenlb */namespace backend/modules/monitorMysql/controllers/showclass AllDatabases extends /yii/base/Action{    private static $_conn = []    public function run()    {        // Create Test DB Connection        $db = $this->getDb('数据库名称')        var_dump($db->getSchema()->getTableSchema('log')->columns['id']->isPrimaryKey)        exit    }    /**     * 得到数据库连接      */    public function getDb($database)    {        if(!isset(self::$_conn[$database])){            $connInfo = [                'class'    => 'yii/db/Connection',                'dsn'      => 'mysql:host=HOST_IPport=3307dbname='.$database,                'username' => 'username',                'password' => 'password',                'charset'  => 'utf8'            ]            /Yii::$app->set($database, $connInfo)            /Yii::$app->$database->open()            self::$_conn[$database] = /Yii::$app->$database                  }        return self::$_conn[$database]    }}

yii2.0 官方提供两个模板

先说基本版:

只要修改 config/db.php

<?php

return [

'class' =>'yii\db\Connection',

'dsn' =>'mysql:host=localhostdbname=yii2',

'username' =>'root',

'password' =>'',

'charset' =>'utf8',

'tablePrefix' =>'hpcms_',

]

其中dbname是指数据库名、 host 是主机、 tablePrefix 是表前缀

高级版的也差不多,修改 common/config/main-local.php

配置参数和上述基本一致!

这样就可以链接数据库了(当然你得要启动mysql才可以,如果是其他数据库,请搜索一下,基本都是配置下参数即可)

对于如何 *** 作数据库(增删改查)请看文档ActiveRecord 以及Model (设计表结构后,可以用Gii快速生成Model)

想知道更多的话,看文档最实际

请参考yii2 官网权威指南2.0

数据库访问 (DAO)

$db = new yii\db\Connection([

    'dsn' => 'mysql:host=localhostdbname=example',

    'username' => 'root',

    'password' => '',

    'charset' => 'utf8',

])

// or config in the mian-local.php

 'db' => [

            'class' => 'yii\db\Connection',

            'dsn' => 'mysql:host=localhostdbname=example',

            'username' => 'root',

            'password' => '',

            'charset' => 'utf8',

        ],


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9999383.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存