3.4.1 数据库配置
CakePHP 会将数据库配置放到app/config/database.php 中。app/config/目录下默认的只有database.php.default文件,可以复制一份并命名为database.php,配置后的内容如下:
var $default = array('driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'cakephpuser',
'password' => 'c4k3roxx!',
'database' => 'my_cakephp_project',
'prefix' => '');
var $default = array('driver' => 'mysql','persistent' => false,'host' => 'localhost','login' => 'cakephpuser','password' => 'c4k3roxx!','database' => 'my_cakephp_project','prefix' => '');
数据库连接配置默认都会使用$default,除非在model有新的连接,并用$useDbConfig等于新的连接进行赋值。举例:在我的实例中除了默认的数据库,还有另一个legacy数据库,我可以创建一个新的legacy数据库的连接数组(跟$default类似),在model里通过var $useDbConfig = 'legacy';进行数据库切换。
根据你的需求填写配置数组中key/value对的值。
| Key | Value |
|---|---|
| driver | 数据库驱动的名字,CakePHP支持的数据库驱动有mysql, postgres, sqlite, pear-drivername, adodb-drivername, mssql, oracle, odbc. |
| persistent | 是否使用数据库永久连接 |
| host | 数据库服务器的主机名或者IP地址 |
| login | 数据库登陆帐户的用户名 |
| password | 数据库登陆帐户的密码 |
| database | 你将使用的数据库名 |
| prefix (可选) | 数据库中表的前缀,如果你的表没有前缀直接将这个参数设为空字符串 |
| port (optional) | 连接数据库的TCP端口或者Unix socket |
| encoding | 指定发送数据库查询语句到服务器的编码格式 |
| schema | 用于 PostgreSQL 数据库中,指定哪个计划将被使用 |
请注意这里的前缀只针对数据库中的表,并不针对model, 举例:如果你将前缀设置为 'prefix_',而你将要创建一个关联Apple,Flavor两个model的关联表,这个表的表名将是prefix_apples_flavors(而不是 prefix_apples_prefix_flavors)
关于这点,你可以参考CakePHP Conventions的附录,用CakePHP命名规则来给数据库表取名可以省掉你很多的配置,并且能获得很多功能。如果表名为:big_boxes,那么model就应该是BigBox,controller:BigBoxesController。为了使用方便,表的名字应该用小写的英文单词的复数形式,单词与单词之间用下划线分隔,bakers, pastry_stores, savory_cakes都是正确的表名。
