连接数据库

如果应用需要使用数据库,必须配置数据库连接信息,数据库的配置文件有多种定义方式。


配置文件定义

常用的配置方式是在应用目录下面 dbconfig.php 中添加下面的配置参数:

  1. return array(
  2. // 数据库类型
  3. 'type' => 'mysql',
  4. // 服务器地址
  5. 'host' => '127.0.0.1',
  6. // 数据库名
  7. 'name' => 'baigo',
  8. // 数据库用户名
  9. 'user' => 'root',
  10. // 数据库密码
  11. 'pass' => '',
  12. // 数据库连接端口
  13. 'port' => '',
  14. // 数据库编码默认采用 utf8
  15. 'charset' => 'utf8',
  16. // 数据库表前缀
  17. 'prefix' => 'baigo_',
  18. // 数据库调试模式
  19. 'debug' => false,
  20. );

type 参数支持完整命名空间定义,默认采用 ginkgo\db\connector 作为命名空间,如果使用自己扩展的数据库驱动,可以配置为:

  1. // 数据库类型
  2. 'type' => 'org\db\Mysql',

表示数据库的采用 org\db\Mysql 类作为驱动,而不是默认的 ginkgo\db\connector\Mysql


方法配置

获取全部

  1. $dbconfig = array(
  2. // 数据库类型
  3. 'type' => 'mysql',
  4. // 服务器地址
  5. 'host' => '127.0.0.1',
  6. // 数据库名
  7. 'name' => 'baigo',
  8. // 数据库用户名
  9. 'user' => 'root',
  10. // 数据库密码
  11. 'pass' => '',
  12. // 数据库连接端口
  13. 'port' => '',
  14. // 数据库编码默认采用 utf8
  15. 'charset' => 'utf8',
  16. // 数据库表前缀
  17. 'prefix' => 'baigo_',
  18. // 数据库调试模式
  19. 'debug' => false,
  20. );
  21. Db::connect($dbconfig);

模型类定义

如果在某个模型类里面定义了 connection 属性,则操作该模型的时候会连接给定的数据库,而不是配置文件中的。通常用于某些数据位于其它数据库的情况,例如:

  1. //在模型里单独设置数据库连接信息
  2. namespace app\model\index;
  3. use ginkgo\Model;
  4. class User extends Model {
  5. protected $connection = array(
  6. // 数据库类型
  7. 'type' => 'mysql',
  8. // 服务器地址
  9. 'host' => '127.0.0.1',
  10. // 数据库名
  11. 'name' => 'baigo',
  12. // 数据库用户名
  13. 'user' => 'root',
  14. // 数据库密码
  15. 'pass' => '',
  16. // 数据库连接端口
  17. 'port' => '',
  18. // 数据库编码默认采用 utf8
  19. 'charset' => 'utf8',
  20. // 数据库表前缀
  21. 'prefix' => 'baigo_',
  22. // 数据库调试模式
  23. 'debug' => false,
  24. );
  25. }