javalzbin

javalzbin

多看,多想,多动手。

  • 财富值6926
  • 威望值150
  • 总积分8796

个人信息

  • 回复了 的回答

    先var_dump出来看看是什么东西,看查询结果是否是自己期望的

    如果说这个字段都没有,那查询有问题。你的查询应该不对,开启debug模式,看看输出的sql语句是否是你所期望的语句

  • 先var_dump出来看看是什么东西,看查询结果是否是自己期望的

  • 2016-04-08 已签到
    连续签到46天,获得了20个金钱
  • 回复了 的回答

    先创建连接对象

    $connection = new \yii\db\Connection([
        'dsn' => $dsn,
         'username' => $username,
         'password' => $password,
    ]);
    $connection->open();
    

    查询返回多行:

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

    返回单行:

    $command = $connection->createCommand('SELECT * FROM post WHERE id=1');
    $post = $command->queryOne();
    

    查询多行单值:

    $command = $connection->createCommand('SELECT title FROM post');
    $titles = $command->queryColumn();
    

    查询标量值/计算值:

    $command = $connection->createCommand('SELECT COUNT(*) FROM post');
    $postCount = $command->queryScalar();
    

    要养成先查文档的习惯:
    http://www.yiichina.com/doc/guide/2.0/db-dao

    我只是把文档的内容复制过来给而已,平时要多看看文档

  • 2016-04-07 已签到
    连续签到45天,获得了20个金钱
  • 先创建连接对象

    $connection = new \yii\db\Connection([
        'dsn' => $dsn,
         'username' => $username,
         'password' => $password,
    ]);
    $connection->open();
    

    查询返回多行:

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

    返回单行:

    $command = $connection->createCommand('SELECT * FROM post WHERE id=1');
    $post = $command->queryOne();
    

    查询多行单值:

    $command = $connection->createCommand('SELECT title FROM post');
    $titles = $command->queryColumn();
    

    查询标量值/计算值:

    $command = $connection->createCommand('SELECT COUNT(*) FROM post');
    $postCount = $command->queryScalar();
    

    要养成先查文档的习惯:
    http://www.yiichina.com/doc/guide/2.0/db-dao

  • 回复了 的回答

    个人感觉逻辑不太对,登录认证应该在控制器中就控制了,而不是应该在模型中去判断,请求肯定是先到控制器,然后对应的action中进行处理,action负责加载一个数据模型,一般是从数据库中加载。那么,如果这个用户没有登录,应该在加载模型之前就判断好

    自己写个Controller,重写beforeaction方法,统一验证,让你的处理业务的Controller继承它

  • 回复了 的回答

    ActiveRecord有个getDb方法,你可以重写他

    public static function getDb()
    {
        return Yii::$app->getDb();
    }
    

    其他它最终调用的是Application的getDb方法

    public function getDb()
    {
            return $this->get('db');
    }
    

    所以,你可以根据你自己的业务,然后重写这个方法,返回你想要的db。
    最好自己写个类,比如:

    class BackBaseActiveRecord extends ActiveRecord{
    
    }
    

    然后让你所有的model都继承BackBaseActiveRecord,这样你在BackBaseActiveRecord中重写getDb方法

    你试试看行不行

    可以,端口区分就行

  • 个人感觉逻辑不太对,登录认证应该在控制器中就控制了,而不是应该在模型中去判断,请求肯定是先到控制器,然后对应的action中进行处理,action负责加载一个数据模型,一般是从数据库中加载。那么,如果这个用户没有登录,应该在加载模型之前就判断好

  • 回复了 的回答

    ActiveRecord有个getDb方法,你可以重写他

    public static function getDb()
    {
        return Yii::$app->getDb();
    }
    

    其他它最终调用的是Application的getDb方法

    public function getDb()
    {
            return $this->get('db');
    }
    

    所以,你可以根据你自己的业务,然后重写这个方法,返回你想要的db。
    最好自己写个类,比如:

    class BackBaseActiveRecord extends ActiveRecord{
    
    }
    

    然后让你所有的model都继承BackBaseActiveRecord,这样你在BackBaseActiveRecord中重写getDb方法

    你试试看行不行

    一个mysql服务器,两个数据库,一般不会这么做,测试可以,但是也是一台服务器两个myslq服务。
    集群也是两台机器,两个mysql服务,然后可以配置主从,当你在主库上进行写操作的时候,主会自动同步到从库中,从而实现读写分离。搭建集群的教程网上很多,集群的方式也很多,根据自身的业务,选择一个合适自己的集群方案,最后提一点,无论哪种集群,为了避免节点出现脑裂而破坏数据,最好是奇数台服务器,也就是至少3台服务器做集群

副总裁 等级规则
8796/10000
资料完整度
40/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

6

Ta的访客

20