Автор Тема: The mysql extension is deprecated and will be removed in the future: use mysqli  (Прочитано 1581 раз)

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
После обновления системы на одном из сайтов начал получать
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/vhosts/video/logon.dist.php on line 12 Strict Standards: Declaration of LMSUserControl::registerUser() should be compatible with UserControl::registerUser() in /var/www/vhosts/video/classes/auth.php on line 74 Strict Standards: Declaration of LMSUserControl::verifyUser() should be compatible with UserControl::verifyUser() in /var/www/vhosts/video/classes/auth.php on line 74 Strict Standards: Declaration of LMSUserControl::updateUser() should be compatible with UserControl::updateUser() in /var/www/vhosts/video/classes/auth.php on line 74Судя по всему из-за того что скрипту нужно php5.3, а после обновления на сервере стал 5.5.
Вариантов решения 2. Откатить обратно на 5.3 или добиться нормальной работы скрипта на 5.5. Идти назад не хотелось бы, поэтому кто сталкивался подскажите как можно решить проблему?
« Последнее редактирование: 22.10.2015 17:20:45 от Cool_Lamer »

Оффлайн zerg

  • ненужная строка
  • alt linux team
  • ***
  • Сообщений: 2 609
  • ненужная строка
    • Найдётся всё
Убрать этот мусор можно переключателем: Не показывать подписи других пользователей.

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
Гуглением решается
http://forum.lanmediaservice.com/viewtopic.php?p=3198
https://github.com/lanmediaservice/lms-video-2.x
Не решается.
По первой ссылке заработал каталог, но вылезла ошибка описанная в первом посте. По второй ссылке речь о версии скрипт 2.х, у меня же 1.х.
« Последнее редактирование: 22.10.2015 17:37:30 от Cool_Lamer »

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Проблемы приложений, не относящихся к самому альт линукс и которые требуют хирургического вмешательства в свой код, лучше всего обсуждать в этом разделе дабы не вводить в заблуждение других пользователей. Посему, тему перенес сюда.

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
Проблемы приложений, не относящихся к самому альт линукс и которые требуют хирургического вмешательства в свой код, лучше всего обсуждать в этом разделе дабы не вводить в заблуждение других пользователей. Посему, тему перенес сюда.
Окай)

Оффлайн Юра Римский

  • Участник
  • *
  • Сообщений: 138
Переход с mysql на mysqli в PHP решается простым поиском и заменой mysql на mysqli по всему коду.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 242
Переход с mysql на mysqli в PHP решается простым поиском и заменой mysql на mysqli по всему коду.
часто даже не в коде, а конфиге где база задается

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
use mysqli
« Ответ #7 : 23.10.2015 16:32:10 »
Переход с mysql на mysqli в PHP решается простым поиском и заменой mysql на mysqli по всему коду.
К примеру, заменить
$idSQLConnection = mysql_connect($config['mysqlhost'], $config['mysqluser'], $config['mysqlpass']);на
$idSQLConnection = mysqli_connect($config['mysqlihost'], $config['mysqliuser'], $config['mysqlipass']);или
$idSQLConnection = mysqli_connect($config['mysqlhost'], $config['mysqluser'], $config['mysqlpass']);Не работает.
« Последнее редактирование: 23.10.2015 16:38:24 от Cool_Lamer »

Оффлайн Юра Римский

  • Участник
  • *
  • Сообщений: 138
О, старый добрый PHP :)

Заменой надо пройтись по всем скриптам во всех папках. Ничего не должно поломаться.

$idSQLConnection = mysql_connect($config['mysqlhost'], $config['mysqluser'], $config['mysqlpass']);станет
$idSQLConnection = mysqli_connect($config['mysqlihost'], $config['mysqliuser'], $config['mysqlipass']);
Ничего страшного. Там где хранится $config['mysqlhost'] тоже всё поменяется.

Проблема может возникнуть, если в каких-то таблицах в БД есть столбцы с "mysql". Больше я и придумать не могу, как ещё может не получиться.

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
О, старый добрый PHP :)

Заменой надо пройтись по всем скриптам во всех папках. Ничего не должно поломаться.

$idSQLConnection = mysql_connect($config['mysqlhost'], $config['mysqluser'], $config['mysqlpass']);станет
$idSQLConnection = mysqli_connect($config['mysqlihost'], $config['mysqliuser'], $config['mysqlipass']);
Ничего страшного. Там где хранится $config['mysqlhost'] тоже всё поменяется.

Т.е. сработать должно только если заменить сразу всё? Т.к. заменил первую строку "по дороге" и сразу получил крит ошибку доступа к базе, имеет ли смысл ковыряться дальше?
Проблема может возникнуть, если в каких-то таблицах в БД есть столбцы с "mysql". Больше я и придумать не могу, как ещё может не получиться.
« Последнее редактирование: 23.10.2015 18:08:41 от Cool_Lamer »

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473
Слишком долго и с миоими знаниями врядли даст результат.

Как откатить php до 5.3?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 164
    • Домашняя страница
Андрей Черепанов (cas@)

Оффлайн Cool_Lamer

  • Участник
  • *
  • Сообщений: 473

Оффлайн Юра Римский

  • Участник
  • *
  • Сообщений: 138
Т.е. сработать должно только если заменить сразу всё? Т.к. заменил первую строку "по дороге" и сразу получил крит ошибку доступа к базе, имеет ли смысл ковыряться дальше?
Да. Если во всех скриптах поменяете, то проблем быть не должно. Любой приличный текстовый редактор позволяет сделать замену сразу по многим файлам. "mysql" в имени столбца - это, скорее, теоретический случай, когда что-то может пойти не так, на практике крайне маловероятен. Откатываться назад смысла мало, он же вовсе не случайно deprecated'ом стал.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 242
Откатываться назад смысла мало, он же вовсе не случайно deprecated'ом стал.
Вообще никакого смысла.
Эти "сообщения" на работу сайта не влияют. Может в PHP 5.6 удалят и тогда да, проблема будет.