我正在尝试使用codeigniter中的1个sqlite数据库构建一个多Web应用程序,我想将sqlite数据库放在应用程序文件夹之外。我进入了我的sqlite数据库目录,但它不起作用。
$db['default'] = array(
'dsn' => 'sqlite:' . '/public_html/database/masterDB.sqlite',
'hostname' => 'localhost',
'username' => '',
'password' => '',
'database' => '',
'dbdriver' => 'pdo',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
答案 0 :(得分:1)
看起来你刚刚和你的小朋友打错了。 。 '但假设情况并非如此......
你的"路径"相对于您的文档根目录。
您的Codeigniter通过文档根目录中的index.php运行。 因此,如果您将数据库文件夹放在与文档根目录相同的级别,那么您将拥有。
/where/is/my/app/public_html/ <<< Document Root
index.php
application/
database/masterDB.sqlite
因此,您的数据库文件夹与index.php处于同一级别,使用./表示法意思在同一级别(而../表示级别)。
你的
之路'dsn' => 'sqlite:' . '/public_html/database/masterDB.sqlite',
正在寻找/where/is/my/app/public_html/public_html/database/masterDB.sqlite
,它不存在
所以你想要
'dsn' => 'sqlite:./database/masterDB.sqlite',
答案 1 :(得分:0)
有可能。
$db['second'] = array(
'dsn' => '',
'hostname' => '',
'username' => '',
'password' => '',
'database' => '.././db/data.db' ,
'dbdriver' => 'sqlite3',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
我的Linux根目录是
/ var / www / html / ci / applications
我的sqlitedb位于
/var/www/html/db/data.db文件夹
它工作正常。
经测试可正常工作