Zend Framework:开始使用SQLite

时间:2009-04-02 05:34:08

标签: database zend-framework sqlite directory-structure

很抱歉,如果这过于简单。

我已经决定使用SQLite数据库而不是MySQL数据库。我试图了解SQLite是多么简单,想要一个关于如何在Zend Framework中使用SQLite的简单的一个答案教程,在哪里将我的SQLite数据库放在我的目录结构中,如何创建数据库等等

3 个答案:

答案 0 :(得分:8)

@tuinstoel是正确的,如果它不存在,附加到SQLite数据库会隐式创建它。

SQLite还支持一个或多或少类似MySQL命令shell的命令行客户端,允许您发出临时命令或运行SQL脚本。请参阅此处的文档:http://www.sqlite.org/sqlite.html

当然,您需要更改ZF应用程序中的Zend_Db适配器。 ZF仅支持PDO SQLite扩展的适配器。 SQLite不支持用户/密码凭据。此外,由于SQLite是嵌入式数据库而不是客户端/服务器,因此“host”参数毫无意义。

$db = Zend_Db::factory("pdo_sqlite", array("dbname"=>"/path/to/mydatabase.db"));

还有一点需要注意:当您以关联数组格式获取查询结果时,某些版本的SQLite坚持使用“tablename.columnname”作为数组中的键,而其他品牌的数据库返回键只是“columnname”。 ZF中存在一个关于此问题的突出错误,试图补偿并使SQLite与其他适配器保持一致,但该错误尚未解决。

答案 1 :(得分:7)

如果连接到不存在的数据库,则会动态创建数据库。 (你可以关掉这个行为)

答案 2 :(得分:0)

现在已在Zend Framework quickstart tutorial(截至本文撰写时的1.9.5版本)中介绍了这一点。只需创建一个新项目(使用zf命令行工具。在设置它时查看a great tutorial),将这些行添加到config.ini文件中,然后就可以了:

; application/configs/application.ini
[production]
resources.db.adapter       = "PDO_SQLITE"
resources.db.params.dbname = APPLICATION_PATH "/../data/db/databaseName.db"

现在,当您要求使用默认数据库适配器时,它将使用此适配器。我还建议下载快速入门教程源代码并使用load.sqlite.php脚本。您可以创建模式和数据文件,并使用这些表/列/值加载数据库。这非常有帮助!只需查看the tutorial即可。它就在那里。

此答案已被移出问题,成为拒绝对内容拥有权的CW答案。