Вызов неопределенного метода 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, тогда мне было хорошо идти.

Другие вопросы по тегам