yii extendedactiverecord 增强版 activerecord 增加多数据库连接绑定功能,activerecordextendedactiverecord 继承自 cactiverecord,因此基础功能与 cactiverecord 无异
为添加对多数据库连接的支持,增加了对 connectionname() 方法的回调,用法跟已有的 tablename() 方法一致,返回数据库连接组件名称的字符串。
如果不定义该方法,则使用默认数据库连接(db)
源码如下:
class extendedactiverecord extends cactiverecord{ public static $db = array(); /** * @return cdbconnection * @throws cdbexception */ public function getdbconnection() { $componentname = $this->connectionname(); if (isset(self::$db[$componentname])) { return self::$db[$componentname]; } else { self::$db[$componentname] = yii::app()->getcomponent($componentname); if (self::$db[$componentname] instanceof cdbconnection) return self::$db[$componentname]; else { $message = 'active record keyword requires a ' . $componentname . ' cdbconnection application component.'; yii::log($message, clogger::level_error, 'extended'); throw new cdbexception(yii::t('yii', $message)); } } } public function connectionname() { return 'db'; }}
实例:
class somemodelclass extends extendedactiverecord{ ...... public function connectionname() { return 'some-db-connection'; } ......}
ralis连接远程数据库,提示activerecord::connectionnotestablished ,本地pl/sql可以访问远程数据库
你是局域网内可以远程连接,广域网使用外网ip不可以连接吗?
路由器上要映射ip地址和数据库端口
yii20怎与xampp的数据库连接?
yii2.0 官方提供两个模板
先说基本版:
只要修改 config/db.php
'yii\db\connection',
'dsn' => 'mysql:host=localhost;dbname=yii2',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'tableprefix' => 'hpcms_',
];
其中dbname是指数据库名、 host 是主机、 tableprefix 是表前缀
高级版的也差不多,修改 common/config/main-local.php
配置参数和上述基本一致!
这样就可以链接数据库了(当然你得要启动mysql才可以,如果是其他数据库,请搜索一下,基本都是配置下参数即可)
对于如何操作数据库(增删改查)请看文档activerecord 以及model (设计表结构后,可以用gii快速生成model)
想知道更多的话,看文档最实际
http://www.bkjia.com/phpjc/860062.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/860062.htmltecharticleyii extendedactiverecord 增强版 activerecord 增加多数据库连接绑定功能,activerecord extendedactiverecord 继承自 cactiverecord,因此基础功能与 cactivereco...
