本节中我们将建立blog的数据库,以及配置应用程序连接到数据库。
建立数据库
我们选择建立SQLite数据库,Because the database support in Yii is built on top of PDO,我们可以方便的切换到不同类型的数据库管理系统(比如 Mysql PostgreSQL)而不需要修改程序的代码。
我们可以在目录/wwwroot/blog/protected/data下数据库文件blog.db。请注意SQLite需要该目录和文件对web服务的进程来说必须是可写的。我们可以简单的从配置的Yii框架的演示程序中把数据库文件复制过来。它被保存在/wwwroot/yii/demos/blog/protected/data/blog.db。我们也可以通过执行文件/wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql中的SQL命令来建立数据库。
为了执行sql命令,我们需要sqlite3 命令行工具,可以从SQLite的官方网站上下载
建立数据库连接
为了在应用程序中使用我们建立的blog数据库,我们需要修改保存在/wwwroot/blog/protected/config/main.php的配置文件。该配置文件是一个php脚本文件,返回组合名值对的数组。其中的每一项都是用户初始应用实例的属性。
我们配置应用的components属性,给它添加一个名字为db的新的入口,参考如下
- return array(
- ......
- 'components'=>array(
- ......
- 'db'=>array(
- 'class'=>'CDbConnection',
- 'connectionString'=>'sqlite:/wwwroot/blog/protected/data/blog.db',
- ),
- ),
- ......
- );
- return array(
- ......
- 'components'=>array(
- ......
- 'db'=>array(
- 'connectionString'=>'mysql:host=localhost;dbname=yii',
- 'username'=>'root',
- 'password'=>'',
- 'charset'=>'UTF8'
- ),
- ),
- ......
- );
上面的配置表示我们有一个连接导数据的组件。可以在程序的任何地方通过使用 Yii::app()->db 来获取连接到数据的对象。Yii::app()用来返回我们在入口程序中建立的应用对象。大多数情况下我们不会直接使用数据库连接,而是使用所谓的ActiveRecord来和数据交互。