PHP7中文手册2018 带注释 最新chm版
完成了程序骨架和数据库设计,在这一节里我们将创建博客的数据库并将其连接到程序骨架中。
创建数据库 我们选择创建一个SQLite数据库。由于Yii中的数据库支持是建立在 PDO 之上的,我们可以很容易地切换到一个不同的 DBMS (例如 MySQL, PostgreSQL) 而不需要修改我们的应用代码。 我们把数据库文件 blog.db 建立在 /wwwroot/blog/protected/data 中。注意,数据库文件和其所在的目录都必须对Web服务器进程可写,这是SQLite的要求。我们可以简单的从博客演示中复制这个数据库文件,它位于/wwwroot/yii/demos/blog/protected/data/blog.db。我们也可以通过执行/wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql 文件中的SQL语句自己创建这个数据库。 提示: 要执行SQL语句,我们可以使用 sqlite3 命令行工具。它可以在 SQLite 官方网站 中找到。 建立数据库连接 要在我们创建的程序骨架中使用这个数据库,我们需要修改它的应用配置 ,它保存在PHP脚本/wwwroot/blog/protected/config/main.php 中。此脚本返回一个包含键值对的关联数组,它们中的每一项被用来初始化应用实例 中的可写属性。 我们按如下方式配置 db 组件, return array( ...... 'components'=>array( ...... 'db'=>array( 'connectionString'=>'sqlite:/wwwroot/blog/protected/data/blog.db', 'tablePrefix'=>'tbl_', ), ), ...... ); 上述配置的意思是说我们有一个 db 应用组件 ,它的 connectionString 属性应当以sqlite:/wwwroot/blog/protected/data/blog.db 这个值初始化,它的 tablePrefix 属性应该是 tbl_。 通过这个配置,我们就可以在代码的任意位置使用 Yii::app()->db 来访问数据库连接对象了。注意, Yii::app() 会返回我们在入口脚本中创建的应用实例。如果你对数据库连接的其他可用的方法和属性感兴趣,可以阅读 类参考。然而,在多数情况下,我们并不会直接使用这个数据库连接。而是使用被称为 ActiveRecord 的东西来访问数据库。 我们想对配置中的 tablePrefix 属性再解释一点。此属性告诉 db 连接它应该关注我们使用了 tbl_ 作为数据库表前缀。具体来说,如果一条SQL语句中含有一个被双大括号括起来的标记 (例如 {{post}}),那么 db 连接应该在把它提交给DBMS执行前,先将其翻译成带有表前缀的名字 (例如 tbl_post) 。这个特性非常有用,如果将来我们需要修改表前缀,就不需要再动代码了。例如,如果我们正在开发一个通用内容管理系统 (CMS),我们就可以利用此特性,这样当它被安装在一个不同的环境中时,我们就能允许用户选择一个他们喜欢的表前缀。 提示: 如果你想使用MySQL而不是SQLite来存储数据,你可以使用位于/wwwroot/yii/demos/blog/protected/data/schema.mysql.sql 文件 中的SQL语句创建一个名为 blog的 MySQL 数据库。然后,按如下方式 修改应用配置, return array( ...... 'components'=>array( ...... 'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=blog', 'emulatePrepare' => true, 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'tablePrefix' => 'tbl_', ), ), ...... );
转载请注明:谷谷点程序 » yii blog 建立数据库