我在UNIX系统上安装了SQLite,并计划从PHP访问它。但是,数据库是在我初始化它的目录中创建的,如果脚本在不同的目录中运行,则在同一目录中创建一个新数据库。
SQLite(或PHP包装器)是否有一个选项可以在一个位置创建数据库,并且只能通过该目录之外的名称访问这些数据库?
理想情况下,我希望能够在任何目录中执行类似$db=new SQLiteDatabase("db.test");
的操作,并让它引用相同的数据库,如果这有意义的话。
答案 0 :(得分:3)
为了始终使用相同的数据库(其中,毕竟只是一个文件),你必须使用绝对路径。
您必须使用类似'db.test'
的内容,而不是使用'/home/user/development/application/db.test'
, relative 到当前目录。
注意路径开头的/
,这是绝对的。
当然,由您决定是否适应您的需求: - )
很有可能,不在代码中放置完全硬编码的路径,就是在你的一个PHP文件中使用dirname(__FILE__)
,以获得包含该文件的目录的完整绝对路径,以及从那里建立起来,到达你的数据库文件。
答案 1 :(得分:1)
您应该将绝对路径存储在配置文件中的某个位置,以便在需要时提供该数据。如前所述,您可以使用dirname(__FILE__)
获取包含PHP脚本所在目录的绝对路径,以便您可以在那里工作。