Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future

FRIE

Новичок
Решил уйти с говнохостинга джино, установил xammpp, как я понял, поменялись версии mysql и php и mysql теперь ругается на ошибки. Причём в одном скрипте с тем же подключением он выдаёт такую ошибку а в другом нет.

Что вообще произошло, как теперь с этим работать? =)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Пора уже обновлять свой код и отказываться от mysql модуля)
 

Фанат

oncle terrible
Команда форума
Только надо понимать, что проблема не в модуле, а в говнокоде, который его использует.
Отказываться совсем не обязательно. В первую очередь надо учиться писать код по-человечески.
а модуль сменить в этом случае будет совсем несложно.
 

FRIE

Новичок
Пора уже обновлять свой код и отказываться от mysql модуля)
Только надо понимать, что проблема не в модуле, а в говнокоде, который его использует.
Отказываться совсем не обязательно. В первую очередь надо учиться писать код по-человечески.
а модуль сменить в этом случае будет совсем несложно.
Потроллели? )))

Я искал в яндексе, нашёл что теперь подключение пишется в одну строку с указанием db и вместо mysql -> mysqli

Запросы вообще перестали обрабатываться) Хочу понять что поменялось чтобы понимать хотя бы что гуглить.
Поделитесь информацией плиз )
 

Вурдалак

Продвинутый новичок
Всё API mysql extension (читай: «все функции с префиксом mysql_») являются устаревшими и с какой-то там версии PHP твой код вообще не будет работать. Пока это только назойливое предупреждение, которое ты можешь вырубить, выставив нужный error_reporting level.

Поэтому «исправить» — это переписать весь код, где используется «mysql_». Заткнуть проблему — выставить
PHP:
error_reporting(E_ALL & ~E_DEPRECATED);
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Фанат, то есть ты считаешь, что это сообщение можно игнорировать и продолжать жрать кактус, сидя на устаревшем?
 

Фанат

oncle terrible
Команда форума
Фанат, то есть ты считаешь, что это сообщение можно игнорировать и продолжать жрать кактус
Кактуса-то нету.
А точнее кактус - в головах.
Если человек идиот, то ему и смена API не поможет - он так и продолжит писать говнокод.
Если же он умеет работать с БД, то у него есть свое собственное API поверх встроенного, и оно решает любые задачи.

Самое забавное, что все те макаки, которые устраивают форменную истерику по поводу старого екстеншена в энторнетах, как не умели работать со старым API, так и новый их по волшебству умнее не сделал.
При этом говнокод у них какой был - такой и остался, и смысла переходить не было вообще никакого на самом деле - что нам и подтверждает автор этого топика своими раскопакми в интернете.

При этом само по себе старое API может вызвать проблемы только ну в исключительно редких случаях, с которыми средний говнокодер не встретится вообще никогда.

сидя на устаревшем?
Одна известная здесь компания, например, попросту оторвала у пхп сообщение об устаревании, и сидит без особых проблем %)

Так что ответ на твой вопрос - да, если умеешь работать с БД, то вполне можно пользоваться старым экстеншеном.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Фанат, еще раз повторюсь, что лучше вовремя отказаться и писать на новом, это в случае автора, когда кто-то там вместо него следит за софтом на сервере. Чтобы при обновлении ничего не упало.

А вот если человек достигает уровня, когда сам может себе ставить что надо и сам следит за всем, тогда пожалуй я бы согласился с тобой.

PS: Новый там API или не новый неважно, главное племя Поповых множится и с этим ничего поделать нельзя)
 

Фанат

oncle terrible
Команда форума
Ну так армия поповичей - куда худшая проблема, чем тот екстеншен, который они используют.
Об этом и речь.
 

FRIE

Новичок
Поэтому «исправить» — это переписать весь код, где используется «mysql_». Заткнуть проблему — выставить
Всё исправил, но когда записываю русский текст в таблицу, он пишет туда такую ерунду
'kltv березники отзывы


Вот код подключения к базе
PHP:
$db = mysqli_connect("localhost", "root", "","base");
  mysqli_query($db,'SET NAMES utf8');
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
Что тут не так?


Когда перекидывал дамп со старым mysql_connect было всё ок.
 

FRIE

Новичок
ага, я как раз попович ))) учился на его курсах, а что делать? вы же не делаете видеокурсы, а он сделал.
зато я в seo спец )
 

FRIE

Новичок
Это звучит примерно так: «Зато я сру под себя!»
Имел ввиду что моя главная профессия повар seo, а программирую не по заявкам, а по необходимости, для себя. У меня не стоит задача стать лучшим программистом, хотя если c0dex и Фанат сделают свои видеокурсы я с удовольствием посмотрю. Мы уже обсуждали этот вопрос, так никто ничего и не сделал, к сожалению.
 

FRIE

Новичок
Посомтрел, данные в перемешку приходят в ASCII и UTF8. Почему 'SET NAMES utf8' не отрабатывает не понятно
 

FRIE

Новичок
Ого! Пришла мысля нашёл решение.
character_set_server=utf8 в mysql.ini (было закомменчено в my.ini)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
FRIE, я никогда не сделаю свои видео-курсы, потому, что недостаточно амбициозен и мне кажется, что я вечно чего-то не знаю. Хотя программингом на php я занимаюсь с довольно древних версий 4.0.х.

PS: по тем же причинам мне кажется, что мне нечего делать на php конфах
 
Сверху