Способ Переводим php движки с mysql на mysqli

Insallah

Schutzstaffel Gruppenführer
Старейшина
Репутация
Начиная с PHP 5.5.0 функции модуля mysql считаются устаревшими(deprecated), а в PHP 7 данный модуль вообще отсутствует, вместо него нужно использовать mysqli. Движки написаные с помощью функций модуля mysql не работают, т.к не могут подключится к базе данных и выдают в логе ошибки типа такой:

PHP Fatal error: Uncaught Error: Call to undefined function mysql_connect() in...

К счастью, исправить все функции mysql на mysqli можно автоматически, скриптом на любом сайте.

скачиваете zip архив. Создаете в каталоге домена подкаталог например convert и кладете туда содержимое архива. Потом переходите по ссылке вида:

httр://ваш_домен.ru/convert/GUI/index.рhр

И видите:
myliconv1.png


Тут я выбирал «Convert a file», т.к в ошибке указан файл в котором присутствует эта функция. Указываем путь к файлу примерно как на картинке. И выбираем сразу заменить старый файл и забекапить.

myliconv2.png


Затем жмакаем «Start the conversion» и наслаждаемся результатом.
 
Полезная тема для бичей ставящих паблик на хост!
 
Не обязательно для бичей, но от части ты прав, конечно.
Ситуации ведь разные бывают, одному лень, у второго проект с 3гб кода)))
 
совершенно не согласен. иногда такое бывает что тебе достался по "наследству" сайт который создавался 3 года назад и само собой его как то надо обновить. а когда БД весит около 7гб тут довольно проблематично и без таких скриптов ну совсем никак не обойтись...разве что самолично как "дурачок" переписывать тысячи сток кода
 
  • Нравиться
Реакции: ntym
После обновления сервера до PHP 7.0 возникла ошибка:
Код:
PHP Fatal error: Uncaught Error: Call to undefined function mysql_escape_string()
на многих сайта предлагают просто заменить mysql_escape_string() на mysqli_escape_string() либо mysqli_real_escape_string(), что не есть правильно и возникнут предупреждения:
Код:
PHP Warning: mysqli_escape_string() expects exactly 2 parameters, 1 given
PHP Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given

Дело в том, что первым аргументом нужно передавать идентификатор подключения.
Код:
mysqli_real_escape_string($aaa->bbb, $data)
 
обновил сервер такая же ошибка PHP Fatal error: Uncaught Error: Call to undefined function mysql_escape_string() как исправить?
 
Сверху