• 4 июля стартует курс «Python для Пентестера ©» от команды The Codeby

    Понятные и наглядные учебные материалы с информацией для выполнения ДЗ; Проверка ДЗ вручную – наставник поможет улучшить написанный вами код; Помощь преподавателей при выполнении заданий или в изучении теории; Групповой чат в Telegram с другими учениками, проходящими курс; Опытные разработчики – команда Codeby School, лидер по информационной безопасности в RU-сегменте

    Запись на курс до 15 июля. Подробнее ...

  • 11 июля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 20 июля. Подробнее ...

mysql_connect() и PHP 7

Pirnazar

Green Team
18.07.2018
205
323
Большинство веб-сайтов в своей работе использует базы данных для хранения информации. Для сайтов, написанных на PHP, обычной является связка PHP + MySQL. В PHP есть несколько интерфейсов для взаимодействия с MySQL и в связи с обновлением до PHP нас ждут довольно важные изменения.

Ошибка Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in

Данное расширение — mysql_connect() — устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем. Используйте вместо него MySQLi или PDO_MySQL. Альтернативы для данной функции:
  • mysqli_connect()
  • PDO::__construct()
Если вы хотите использовать MySQLi, то эта небольшая шпаргалка поможет вам.

Подключение к базе данных с MySQLi делается так:

PHP:
<?php
$connection = mysqli_connect('localhost', 'username', 'password', 'database');


Осуществление запросов к базе данных также очень простое и практически идентично старому способу:
PHP:
<?php
// Старый способ
mysql_query('CREATE TEMPORARY TABLE `table`', $connection);
// Новый способ
mysqli_query($connection, 'CREATE TEMPORARY TABLE `table`');


Можно отключить все предупреждения об использовании устаревших функций, включая и для mysql_*:
PHP:
<?php
error_reporting(E_ALL ^ E_DEPRECATED);
Можно отключить предупреждения только для mysql_connect для этого достаточно поставить символ @ вначале строки.
PHP:
@mysql_connect('localhost','root','');
Тем не менее, отключение вывода предупреждений это не совсем правильный путь и вот почему. При обновлении до PHP 7 вместо предупреждения об устаревшей функции, о которой вы могли уже и забыть, вас встретит вот такая ошибка:

Ошибка Fatal error: Call to undefined function mysql_connectect() in

Ошибка является фатальной (Fatal error), т. е. исправить её нельзя. Вызвана она тем, что в PHP 7 расширение ext/mysql просто удалено. Об этом, а также о всех других изменениях в PHP 7 сказано на странице «Замечания по обновлению до PHP 7».
 
Мы в соцсетях: