2010-04-24 196 views
0

我在我的UNIX系统上安装了SQLite,并计划从PHP访问它。但是,数据库是在我初始化的目录中创建的,如果脚本在不同的目录中运行,则会在同一目录中创建新的数据库。如何从中央位置存储和访问SQLite数据库?

是否有SQLite(或PHP包装器)在一个位置创建数据库的选项,并让这些数据库只能通过该目录之外的名称访问?

理想情况下,我希望能够在任何目录中执行类似$db=new SQLiteDatabase("db.test");的操作,并让它引用相同的数据库,如果这样做合理的话。

回答

2

为了始终使用同一个数据库(其中,毕竟,只有一个文件)你必须使用绝对路径

而不是使用'db.test',这是相对到当前目录的,你必须使用类似'/home/user/development/application/db.test'
请注意路径开始处的/,这使其成为绝对路径。


当然,你来:-)

一个很好的可能性这个适应您的需求,不能把一个完全硬编码路径在你的代码,将是一个使用dirname(__FILE__)的PHP文件,以获取包含该文件的目录的完整绝对路径,并从那里建立起来,以获取数据库的文件。

+0

太好了,谢谢。我有一个单例来处理数据库实例,我可以坚持绝对路径,并使用全局变量或其他来选择数据库。 – 2010-04-25 02:54:49

+0

不客气:-) ;;很好:-) – 2010-04-25 10:41:11

1

您应该将绝对路径存储在配置文件的某处,以便在需要时提供该数据。如前所述,您可以使用dirname(__FILE__)获取包含PHP脚本的目录的绝对路径,以便您可以从此处开始工作。