Вызов неопределенного метода MDB2_Error::setFetchMode()
Я использую MDB2 PEAR для подключения к моим базам данных MySQL.
У меня никогда не было проблем раньше, но именно этот хост вызывает у меня проблемы.
Сначала я подумал, что это учетные данные пользователя, но я тестировал тот же файл со стандартным MySQL
код для успешного подключения.
//Error Code
Fatal error: Call to undefined method MDB2_Error::setFetchMode() in /home/topazmar/public_html/db/db.php on line 15
//Php Code
$this->conn=MDB2::connect(array(
'phptype' => 'mysql',
'username' => DATABASE_USR,
'password' => DATABASE_PWD,
'hostspec' => DATABASE_HOST,
'database' => DATABASE_NAME,
));
$this->conn->setFetchMode(MDB2_FETCHMODE_ASSOC); //Line 15
редактировать
Я вывел $this->conn с дампом
[0] => Array
(
[file] => /home/topazmar/public_html/db/MDB2.php
[line] => 979
[function] => PEAR_Error
[class] => PEAR_Error
[type] => ->
[args] => Array
(
[0] => MDB2 Error: not found
[1] => -4
[2] => 1
[3] => 1024
[4] => unable to find package 'MDB2_Driver_mysql' file 'MDB2/Driver/mysql.php'
)
)
я должен MDB2_Driver_mysql 1.4.1
устанавливается вместе с PEAR и MDB2... Смущает меня, я не думаю, что использование modrewrites изменит это вообще.
3 ответа
Ваше соединение не удается, и вы получаете объект ошибки (класс MDB2_Error
) вместо объекта подключения (расширение класса MDB2_Driver_Common
).
использование PEAR::isError($this->conn)
проверить, успешно ли установлено соединение.
[Править - Хатбер]
Это означает, что вы не были связаны с проблемами db, pw, пользователь не имеет привилегий и т. Д.
В случае, если кто-то видит этот поток, и они правильно установили MDB2 и драйверы db: у меня была та же проблема, и оказалось, что я установил недостаточные разрешения для пользователя db. Durrr
Так что для меня это было так же просто, как установить библиотеку MDB2 от Pear.
Предполагая, что у вас уже установлена PEAR:
pear install MDB2
pear install MDB2#mysql
Из окна терминала /cmd, тогда мне было хорошо идти.