Согласно руководству PHP и множеству источников в Интернете по версии PHP 5.5.x, все оригинальное расширение MySQL устарело. У меня действительно надежное веб-приложение, которое используется многими учениками в моей ассоциации, но я начал работать над этим, когда я не знал много PHP, и я никогда не беспокоился об изменении расширения MySQL_ * с MySQLi_ * или PDO_MySQL ,
Веб-приложение завершено, и все системы запущены и, вероятно, не будут улучшены новыми функциями, поэтому мой вопрос: должен ли я потратить некоторое время и изменить все вызовы mysql_ * и переключить их с помощью вызовов mysqli_ *. Мое приложение когда-либо станет недоступным в Интернете, если я оставлю все с устаревшим расширением mysql_ *?
Мое приложение когда-либо станет недоступным в Интернете, если я оставлю все с устаревшим расширением mysql_ *?
Ваше приложение будет разорваться только тогда, когда и когда сервер, на котором он запущен, обновлен до версии PHP, которая не поддерживает старый API. Если ваш сервер не обновляется до версии PHP 5.5, ваше приложение будет продолжать работать, как и на неопределенный срок. Ничто другое из внешнего Интернета не повлияет на это в этом отношении; важны только обновления на ваш собственный сервер.
На данный момент php 5.4 по-прежнему активно поддерживается, поэтому вы можете с радостью остановиться на этой версии, не беспокоясь о внезапном нарушении вашего кода.
Однако в какой-то момент в будущем по той или иной причине вам нужно будет перейти на PHP 5.5 или выше. PHP 5.4 станет последним, и рекомендуется перейти к 5.5. Или, если вы используете учетную запись с общим хостингом, у вас может даже не быть выбора по вашей версии PHP. Так что да, вы должны ожидать, что ваш текущий код не будет работать с версией PHP, которую вы используете в то время. В итоге.
Поэтому, пока нет необходимости немедленно переключаться, вы должны сделать это как можно скорее. Одна вещь, которую вы не хотите, – это тот день, когда все ломается, и вы обнаружите, что поймали.
5.5 только что был выпущен, поэтому у вас, вероятно, есть несколько лет, прежде чем он станет самой низкой доступной версией, но примите мои советы; вы не хотите ждать до последнего момента.
Должен ли я занять некоторое время и изменить все вызовы mysql_ * и переключить их с помощью вызовов mysqli_ *.
Вы заявили, что ваше приложение «действительно надежное» и «вероятно, не будет улучшено». Таким образом, это в основном в долгосрочной перспективе.
Учитывая эти критерии, я бы сказал, что да, простой переход к mysqli
lib – это разумный ход. Необходимые изменения довольно тривиальны (похоже, что у вас есть ручка о том, что делать уже), и не должно иметь никакого никакого влияния на остальную часть программного обеспечения.
Если ваш код действительно надежный и хорошо написанный, он будет структурирован таким образом, чтобы существовал какой-то уровень базы данных, что будет означать, что вам все равно нечего делать.
Если это не так хорошо структурировано, у него может быть много mysql_query()
разбросанных по всему коду, и в этом случае может потребоваться немного больше работы. В этом случае, поскольку вы все равно работаете над кодом, вы можете подумать о том, чтобы потратить немного времени на реструктуризацию. Создайте слой базы данных. Возможно, начните использовать подготовленные заявления. Я бы также рекомендовал переключиться на PDO, а не на mysqli
. Но ваш звонок – учитывая то, что вы сказали в вопросе, было бы понятно, если бы вы хотели сделать минимальный объем работы.
Кстати, если вы еще этого не сделали, вы также можете прочитать следующее: Почему я не должен использовать функции mysql_ * в PHP?
Да, приложение будет недоступным, если ваш веб-хостинг будет обновлен до версии PHP, где расширение будет удалено. Обратите внимание, что это не произойдет в PHP 5.5, где расширение «только» отмечено как устаревшее. Точно, когда расширение будет удалено, будет неизвестен afaik atm.
Что касается вопроса обновления: это действительно зависит, ожидаете ли вы, что ваше приложение выйдет из-под контроля mysql_ *? Часто ли ваш веб-узел часто обновляет PHP? Если они медленны с обновлениями, вы можете запустить приложение в течение многих лет.
Производительность / безопасность было бы предпочтительнее изменить подготовленные заявления.
Вопрос, который вы должны задать себе:
"How long before I am forced to move to a version of PHP that no longer supports mysql_*?"
Если вы никогда не обновляете свой PHP, вам совсем не нужно менять код. (Пожалуйста, не кричите на меня, пока ребята)
Однако некоторое время в будущем вам придется перейти на новый уровень PHP
Вы, интернет-провайдер или администратор сети, настаиваете на том, что версия PHP, на которую вы застряли, является старой и небезопасной для работы в сети.
Итак, честный ответ: вам не нужно делать это в пятницу, но когда этот администратор настаивает на удалении вашей версии PHP, вам придется это делать когда-нибудь. Поэтому, когда у вас есть время, ЭТО.
Должен ли я занять некоторое время и изменить все вызовы mysql_ * и переключить их с помощью вызовов mysqli_ *.
При смене вызова mysql на mysqli механически не будет ничего хорошего.
Мое приложение когда-либо станет недоступным в Интернете, если я оставлю все с устаревшим расширением mysql_ *?
На самом деле я не могу получить то, что вы здесь задаете, но я бы сказал, что у вас есть как минимум 5 лет вперед.
Да, вы должны позаботиться о том, чтобы обновить свой код для работы с mysqli или PDO.
Причина заставляет не только в mysql_ * быть недоступным в будущих версиях PHP. Но и в вашей безопасности.
mysql_ * не поддерживает подготовленные операторы / параметризованные заявления, которые охватывают защиту sql. Вы можете использовать mysql_real_escape_string (), но даже это не безупречно при работе с символами MultiByte.
См. Также: https://security.stackexchange.com/questions/8028/does-mysql-escape-string-have-any-security-vulnerabilities-if-all-tables-using-l и https://stackoverflow.com / а / 12118602/1209443