Я обновляю сайт из Fedora 14, PHP4 и PEAR DB до Fedora 16, PHP 5.4 и PEAR MDB2 2.5.0b3, и я получаю ошибку
Неустранимая ошибка: вызов неопределенной функции: MDB2_Driver_MYSQL :: getAll (). в /usr/share/php/MDB2.php в строке 1892
- SQL Query и PHP-манипуляция с помощью модели вложенного набора
- php json_encode не приводит к реальной строке объекта / make массиву в реальном объекте / превращает php-массив в json
- Выход из системы с аутентификацией Laravel JWT-auth
- php - найти, если массив содержит элемент
- PHP добавляет дополнительные пробелы по требованию
Очевидно, что я проверил строку 1892 файла MDB2.php и содержит код сообщения об ошибке для __call
магии __call
(позволяет вызывать определенную функцию, передавая ее в __call
)
Я проверил для использования __call
, и, похоже, нет. Аналогично, когда я пытаюсь найти, откуда MDB2_Driver_MYSQL
исходит, единственное место, о котором он даже упоминает, находится в MDB2.php (как комментарий о драйвере для MySQL), в объявлении class MDB2_Driver_mysql extends MDB2_Driver_Common
( class MDB2_Driver_mysql extends MDB2_Driver_Common
) и описание title в файле .xml.
Я вручную включил файл /usr/share/php/MDB2/Extended.php
в файл, где MDB2_Driver_mysql
класс MDB2_Driver_mysql
, и это не помогло (не то, что это было бы постоянным исправлением …)
Кто-нибудь столкнулся с этой ошибкой, и если да, то что вы сделали, чтобы исправить это? Google оказался почти бесполезным, так как единственное место, о котором говорится в нем , на самом деле не связано с его исправлением.
Перед тем, как сделать запрос, загрузите расширенный модуль в код, как показано ниже:
$db->loadModule('Extended');
измените getAll () в своем классе, на queryAll (), вы получите некоторую разницу между DB и MDB2, а также с getOne, getRow – все они были изменены на queryOne, queryRow. Здесь вы можете прочитать об этом http://www.phpied.com/db-2-mdb2/