Ответ на ваш вопрос нелегко, поскольку практически каждый простой способ сделать это включает в себя разные действия, когда приложение было написано.
Если у вас есть прямые вызовы функций mysql_ * по всему вашему коду и нет уровня абстракции базы данных, где вы выполняете свои запросы через вспомогательный класс или функцию, вам нужно будет отредактировать каждую команду.
Вы не можете просто уйти с добавлением I к командам, как mysql_query, как процедурно mysqli_query()
требует первый параметр, чтобы быть ссылка на БД, где с mysql_query()
, если соединение было дано вообще, это был второй параметр.
Вместо того, чтобы просто менять mysql_query (...) на mysqli_query ($ link, .....), я бы рекомендовал, чтобы не было лучшего места для добавления слоя абстракции db. Поэтому используйте функции sql_query(), которые фактически обрабатывают ваши запросы, поэтому в будущем, если вам нужно снова изменить БД, вы можете просто обновить отдельные команды db в одном файле абстракции. Таким образом, если вы напишете функцию, которая обертывает mysqli_query, вы сможете просто переименовать свой mysql_query() в свою вспомогательную функцию и позволить вспомогательной функции беспокоиться о том, чтобы установить ссылку там.
Хотя это самый простой способ, это не будет связывать параметры или подготовить заявления, который является одним из основных факторов в предотвращении инъекции SQL Уязвимости
После того, как вы изменили все эти команды, необходимые для тестирования.
Если у вас нет автоматических тестов, то это, вероятно, хорошее время, чтобы начать их писать. Несмотря на то, что вам нужно будет проверить, что все изменения сработали, если вы сделаете это с помощью автоматизированного теста, тогда вы можете избежать этой боли в будущем.
нет простой способ. необходимо проверить все сценарии и заменить вызовы. и тест. – Aris
У вас есть тестеры? – DevZer0
Каковы основные изменения? Просто параметры и имя функций? И нет, у меня не так много тестеров ... – Jordy