Установка Zend Db SQLITE - PullRequest
       4

Установка Zend Db SQLITE

4 голосов
/ 11 марта 2011

Я пытаюсь настроить sqlite в качестве дополнительного адаптера и столкнулся с проблемой.

Я получаю следующее сообщение:

Message: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'reports.reports' doesn't exist

Мой код для таблицы:

class Table_Reports extends Zend_Db_Table_Abstract {
protected $_name = 'reports';
protected $_id = 'report_id';
protected $_rowClass = 'Model_Report';
protected $_adapter = 'dbReports';
protected $_schema = 'reports';

}

Если я изменяю $ _schema на пустое значение, он пытается использовать мою основную базу данных mysql.

Конфигурация моего приложения:

resources.multidb.db1.adapter = "PDO_MYSQL"
resources.multidb.db1.host = "localhost"
resources.multidb.db1.dbname = "test"
resources.multidb.db1.username = "root"
resources.multidb.db1.password = ""
resources.multidb.db1.isDefaultTableAdapter = true

resources.multidb.db2.adapter = "PDO_SQLITE"
resources.multidb.db2.dbname = ROOT "/data/reports.db"

Кто-нибудь знает, что происходит?

Спасибо

Я включил профилирование, однако, насколько я могу судить, ничего не запрашивается, так как ошибка возникает при запуске:

$reports = new Table_Reports();
$reportRow = $reports->createRow();

Ответы [ 2 ]

2 голосов
/ 12 марта 2011

Попробуйте использовать APPLICATION_PATH и относительный путь вместо ROOT. Возможно, у вас есть проблема с ограничением или авторизацией open_basedir

0 голосов
/ 15 марта 2011

Мне удалось решить эту проблему.

Адаптер использовал данные о пользователе и пароле mysql, чтобы попытаться подключиться к sqlite, поэтому мне пришлось заставить адаптер переключаться следующим образом:

public function __construct($config = array())
{
    $this->_setAdapter(Zend_Registry::get('dbReports'));
    parent::__construct($config);
}

Это в файле class Table_Reports

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...