2015-06-04 15:13:12 7742次浏览 1条回答 0 悬赏 5 金钱

在yii2中 不想数据库连接为全局 想做个底层 工具类(sqlhelper) 专门连接数据库 该怎么弄啊。 你们有弄过吗?有案例就更好了。

最佳答案

  • 魔鬼 发布于 2015-06-04 15:28 举报

    指南的说明

    如果不想定义数据库连接为全局应用组件,可以在代码中直接初始化使用:

    $connection = new \yii\db\Connection([
        'dsn' => $dsn,
         'username' => $username,
         'password' => $password,
    ]);
    $connection->open();
    
    5 条回复
    回复于 2015-06-04 15:46 回复

    这段代码应该放到哪里呀 是直接放到底层工具类 的 构造函数中吗

    回复于 2015-06-04 16:19 回复
    回复于 2015-06-04 17:22 回复

    看了呀 配置文件也弄了 后面出了错 咋调试的没有用,一直纠结中。 你尝试过吗,你能附上你关键部分 代码吗

    回复于 2015-06-04 17:56 回复


    像这样,就可以单独连接数据库并查询.

    $command = $connection->createCommand('SELECT * FROM post');
    $posts = $command->queryAll();
    

    如果你是需要用到model之类的,那就在model里重写 getDb() 这个方法,这种方式是当你用到这个model的时候才连接到数据库...
    补充一下,yii的数据库全局本身就是按需连接...

    public static function getDb()
        {
            $connection = new \yii\db\Connection([
                'dsn' => 'mysql:host=localhost;dbname=xxx,
                 'username' => 'root',
                 'password' => '',
            ]);
            $connection->open();
    
            return $connection;
        }
    
    回复于 2015-06-05 11:18 回复

    哈哈 , 谢谢了。根据你的方法,问题终于解决了。真心感谢

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
样歌party
见习主管

样歌party

注册时间:2015-05-28
最后登录:2015-07-11
在线时长:5小时10分
  • 粉丝2
  • 金钱280
  • 威望0
  • 积分330

热门问题