Итак, у меня есть такой класс:
class Db {
protected static $dbh = false;
function connect(){
try {
self::$dbh = new PDO("sqlite:./test.db");
self::$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::$dbh->exec("CREATE TABLE IF NOT EXISTS news (id INTEGER PRIMARY KEY AUTOINCREMENT, tytul TEXT, tresc TEXT, data DATE, wazne TINYINT(1))");
} catch (PDOException $e) {
echo $e->getMessage();
}
}
}
Есть еще что-то вроде функций выборки и т. Д. У меня этот класс хранится так:
|otherfile.php
|admin
|inc/db.inc
|somefile.php
Так что моя проблемакогда я требую ('db.inc');изнутри somefile.php и использования класса он создает новый test.db в папке «admin».Но когда я требую его в файле "otherfile.php" и использую класс, он создает отдельный файл test.db в той же папке, что и "otherfile.php".Как я могу заставить его использовать один файл, все еще используя относительный путь к БД?
edit: Лично я считаю, что это будет работать лучше всего:
function connect(){
try {
$dir = __DIR__.'/test.db';
self::$dbh = new PDO("sqlite:".$dir);
self::$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::$dbh->exec("CREATE TABLE IF NOT EXISTS news (id INTEGER PRIMARY KEY AUTOINCREMENT, tytul TEXT, tresc TEXT, data DATE, wazne TINYINT(1))");
} catch (PDOException $e) {
echo $e->getMessage();
}
}
Это работает локальнос моей настройкой xampp, но, к сожалению, не работает на удаленном сервере.
edit: Наконец-то понял, см. ответ.
Спасибо за ответы в любом случае: -)