Замена для PEAR: MDB2 на PHP 5.3 - PullRequest
       12

Замена для PEAR: MDB2 на PHP 5.3

9 голосов
/ 07 октября 2009

Я использую пакеты с грушей в php уже много лет. Я нахожусь в процессе обновления / перемещения сайтов, использующих пакет MDB2 pear, и он не был обновлен для PHP 5.3.X.

В 5.3 MDB2 возвращает эти новые досадные ошибки.

Unknown: Assigning the return value of new by reference is deprecated in /usr/local/lib/php/MDB2.php on line 390

Я знаю, что могу изменить настройки отчетов об ошибках, чтобы избавиться от них, но я бы не стал делать никаких исключений. Во всяком случае, кто-нибудь еще использует MDB2 в эти дни и есть решение? Есть ли похожие пакеты баз данных, которые вы рекомендуете?

Ответы [ 7 ]

9 голосов
/ 13 апреля 2012

Вы также можете перейти на бета-версию 3 из командной строки

pear upgrade MDB2-beta
pear upgrade MDB2_Driver_Mysql-beta

Объяснение того, почему текущая стабильная версия не соответствует строгим отчетам об ошибках: http://pear.php.net/bugs/bug.php?id=9756

Источник команды:
http://pear.php.net/bugs/bug.php?id=18050

9 голосов
/ 07 октября 2009

Я бы определенно пошел на ORM, по крайней мере, если вы работаете над большим проектом, для которого вы не хотите использовать mysqli_* или функции / методы PDO напрямую - Doctrine существо наиболее разработанный / используемый, в настоящее время (это ORM по умолчанию для Symfony Framework, и его можно легко интегрировать в Zend Framework) .

Об ошибках E_DEPRECATED, однако: PHP 5.3 довольно молод, и многие библиотеки / программы / проекты еще не были адаптированы - их, вероятно, будет много в ближайшие пару месяцев :-(

7 голосов
/ 17 мая 2010

Я собираюсь прокомментировать это, так как он находится высоко в результатах поиска Google для этой проблемы.

Я связался с ведущим разработчиком для MDB2, который сказал:

пожалуйста, проверьте копию MDB2 из SVN, она полностью совместима с PHP5.3, со многими улучшениями производительности. В настоящее время я жду некоторые исправления для нового драйвера SQL Server (Microsoft работает над ним уже на этой неделе), а затем отправлю новый стабильный выпуск.

(Правка, 4 года спустя: это больше не правильно, не делайте этого)

3 голосов
/ 05 августа 2011

Я только что пошел и скачал последнюю версию MDB2 (MDB2-2.5.0b3) отсюда http://pear.php.net/package/MDB2/download, и он избавился от всех моих ошибок. Кажется, работает нормально с PHP версии 5.3.5

1 голос
/ 07 октября 2009

Вы можете использовать Zend Framework для поддержки базы данных или использовать ORM, например Doctrine или Propel

0 голосов
/ 15 января 2016

Если вы используете только MDB2 для MySQL, вы можете заменить его и оставить большинство функций с MDBDid: http://azure -dev.kiao.net / 648-mdb2 У вас будет мало кода для адаптации.

0 голосов
/ 23 сентября 2011

Я обошел все устаревшие ошибки и предупреждения, используя MDB2 и PHP 5.3, но я получил некоторые действительно странные ошибки на MDB2, так что интересно, что скрывается под капотом. Моя среда - CentOS, PHP 5.3, MDB2-2.4.1, MySQL 5.0.77

В любое время я использую autoExecute 2x в файле php, 2-й сбой (то же самое происходит, если я пытаюсь использовать подготовить и затем выполнить). Я регистрировался в моем журнале запросов MySQL, и хотя успешный INSERT покажет значения, неудачный INSERT всегда будет иметь только заполнители. то есть: значения (?,?,?,?). И MDB2_Error всегда будет упоминать RECURSION

lastInsertID () никогда не работал с таблицами MySQL и полями автоинкремента (с драйвером mysqli) Я сделал достаточно отладки, углубившись в стек вызовов, и результат get настолько обернут в Objects, что вы не можете сказать, что это такое, до самого конца. Я бы хотел больше использовать MDB2, но на самом деле мне пришлось возвращаться к обычному mysql, много раз из-за этих проблем. Возможно, Лукас или другие разработчики могли бы пролить свет на эту тему или указать нам верное направление.

...