Я понимаю, что функции PHP mysql_*
устарели и Я не должен их использовать.
Однако у нас есть несколько устаревших баз данных MySQL 4.0, которые ни mysqli_*
, ни PDO
поддерживают функции. Каков наилучший способ продолжить использование последних версий PHP и все еще иметь возможность подключаться к этим базам данных?
(Основываясь на описании в верхней части начальной страницы PDO, я изначально думал, что PDO может быть вариантом, но Changelog далее по странице предполагает, что поддержка pre-4.1 была удалена в PHP 5.4)
Я понимаю, что MySQL 4.0 составляет 10 лет, и настоящая проблема здесь что мы все еще используем его. Модернизация MySQL - это отдельная проблема, которая вне сферы моего влияния и этого вопроса. Что я делаю есть контроль над версией PHP, которую мы используем, - и я буду ненавидеть должны перестать обновлять PHP только потому, что нам нужно подключиться к некоторым старым базы данных.
Обновлено (2):
Я обновил этот вопрос, чтобы отразить мое новое понимание того, что даже PDO больше не будет подключаться к этим старым серверам MySQL.
Я также должен уточнить, что у нас есть несколько устаревших приложений, обращающихся к этим базам данных, и мы хотим как можно меньше изменить эти приложения. Они не находятся в активной разработке, и тестирование изменений, связанных с переписыванием больших разделов кода, быстро превратилось бы в довольно большой проект QA.
По этой причине инвазивные решения, такие как переписывание кода или обновление версии MySQL, вряд ли будут стоить. Если они являются единственными доступными решениями, мы, скорее всего, ничего не сделаем - используя mysql_*
как можно дольше, а затем замораживая версию PHP (по крайней мере для этих приложений), как только последний PHP больше не сможет подключиться.
С другой стороны, технически сложные решения (такие как компиляция чего-то с нуля), безусловно, возможны, и на самом деле они предпочитают делать обширные изменения кода.
Теперь я предлагаю щедрость в надежде получить новые ответы, которые предлагают более сложные альтернативы.