Перейти к содержимому

PHP MySQLi

В этой статье мы сосредоточимся на расширении PHP MySQLi, которое используется для взаимодействия с базами данных MySQL в PHP. Мы предоставим вам обзор расширения, принцип его работы и примеры использования.

Введение в расширение MySQLi

Расширение MySQLi — это расширение PHP, предоставляющее интерфейс для взаимодействия с базами данных MySQL. Это улучшенная версия более старого расширения MySQL, обеспечивающая лучшую безопасность, производительность и функциональность.

Расширение MySQLi предоставляет два различных интерфейса для взаимодействия с базами данных MySQL: объектно-ориентированный и процедурный. Хотя процедурный интерфейс (mysqli_connect(), mysqli_query() и т. д.) также доступен, в современном PHP обычно предпочтительнее объектно-ориентированный подход. В этой статье мы сосредоточимся именно на объектно-ориентированном интерфейсе.

Как использовать расширение MySQLi

Использовать расширение MySQLi очень просто. Вам нужно лишь создать новый объект MySQLi, который представляет собой подключение к базе данных MySQL. Вот пример:

Как использовать расширение MySQLi?

php
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

$result = $mysqli->query("SELECT * FROM users");
while ($row = $result->fetch_assoc()) {
    echo "Name: " . $row["name"] . " - Email: " . $row["email"] . "<br>";
}

$mysqli->close();
?>

В этом примере мы создаем новый объект MySQLi с помощью конструктора mysqli(), передавая в качестве аргументов имя хоста, имя пользователя, пароль и имя базы данных. Затем мы проверяем успешность подключения, обращаясь к свойству connect_error объекта MySQLi.

Далее мы выполняем запрос SELECT для получения всех строк из таблицы users. Мы перебираем набор результатов с помощью цикла while и выводим имя и адрес электронной почты каждого пользователя.

Наконец, мы закрываем подключение MySQLi с помощью метода close() объекта MySQLi.

Расширенное использование

Расширение MySQLi предоставляет множество других методов для взаимодействия с базами данных MySQL. Например, вы можете использовать метод prepare() для подготовки запроса с заполнителями, а затем выполнить его с разными значениями параметров. Вот пример:

Расширенное использование PHP MySQLi

php
<?php
$age = 18;
$stmt = $mysqli->prepare("SELECT name, email FROM users WHERE age > ?");
$stmt->bind_param("i", $age);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    echo "Name: " . $row["name"] . " - Email: " . $row["email"] . "<br>";
}
$stmt->close();
?>

Примечание: Метод get_result() требует драйвера mysqlnd. Если в вашей среде используется другой драйвер, вам потребуется привязать переменные результатов с помощью bind_result().

В этом примере мы используем метод prepare() для подготовки оператора SELECT с заполнителем для параметра age. Подготовленные операторы отделяют SQL-логику от данных, что эффективно предотвращает атаки SQL-инъекции, гарантируя, что пользовательский ввод никогда не интерпретируется как исполняемый код. Затем мы привязываем значение 18 к параметру с помощью метода bind_param(). Мы выполняем оператор методом execute() и получаем набор результатов методом get_result(). После этого мы перебираем набор результатов и выводим имя и адрес электронной почты каждого пользователя.

Заключение

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

Практика

Какие важные функции есть у PHP MySQLi?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.