设置数据库配置十分简单,但在开始之前,要确保数据库服务器处于运行状态,确保已经为应用程序创建了数据库,并确保拥有一个用户的用户名和密码(这个用户具有对数据库进行操作的权限)。
首先,制作 app/config/database.php.default 文件的一个拷贝并将其保存为 app/config/database.php。这样做是为了保留一个原始模板的拷贝。在您喜欢的文本编辑器中打开该文件并查找以下部分(它应当非常接近该文件的底部)。
清单 6. app/config/database.php.default 文件
var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'port' => '', 'login' => 'user', 'password' => 'password', 'database' => 'database_name', 'schema' => '', 'prefix' => '', 'encoding' => '' ); |
根据自己的情况修改以下信息:
-
driver
-
此字段可以是
mysql
、mysqli
、postgres
、sqlite
、mssql
、db2
、oracle
、adodb
或pear-drivername
。本教程假定它是mysql
。
-
persistent
- 此字段告诉 CakePHP 是否应当使用持久的数据库连接。有效值是 true 或 false。本教程假定它是 false。
-
host
-
这是数据库服务器的主机名,例如
localhost
或mysql.yourdomain
。
-
port
- 如果数据库在非标准端口上运行,可以在这里指定要使用的端口。
-
login
-
这是用于数据库登录的用户名,比如
dbuser
。
-
password
-
这是用于数据库登录的密码,比如
secretsecret
。
-
database
-
这是希望使用的数据库的名称,比如
cakedev
。
-
schema
- 这个字段用来指定将使用什么数据库模式。它可以为空。本系列不讨论数据库模式。
-
prefix
-
前缀是一个字符串,比如
cp_
,它是 CakePHP 执行的任何数据库调用的表名前缀。如果数据库由多个应用程序共享,而又要保证在两个或多个应用程序需要使用具有相同名称的表时(比如users
)表不会相互覆盖,那么就有必要使用前缀。
-
encoding
- 这个字段用来指定数据库使用的编码。对于本系列,这个字段可以为空。
请不要忘记保存文件。
可以在 database.php 中指定任意数目的数据库配置,只要这些数据库配置具有不同的名称。可以指定应用程序应当在模型中使用哪个数据库配置。
数据库和 CakePHP 的一些注意事项:
- 表必须具有名为
id
的主键。 - 如果表中包含 created 或 modified 列,CakePHP 就会在适当的时候自动填充字段。
- 表名应该为复数(users、products、eggs、sodas、winners、losers)。其相应的模型将具有单数的名称(user、product、egg、soda、winner、loser)。
- 如果要将表关联起来,外键应当采用
table_id
格式,且使用单数的表名。例如,user_id
、product_id
、egg_id
、soda_id
、winner_id
和loser_id
是表的 user、product、egg、soda、winner 和 loser 的外键。