Описание тега mysqli

Расширение mysqli PHP - это драйвер базы данных PHP. Не путать с базой данных MySQL.

В mysqli Расширение PHP является преемником mysqlРасширение PHP. Это обеспечивает отображение низкого уровня к MySQL в интерфейс C. Основные функции расширения:

  • Объектно-ориентированный интерфейс
  • Поддержка подготовленных отчетов
  • Поддержка нескольких операторов
  • Сопровождение сделок
  • Расширенная поддержка отладки
  • Поддержка встроенного сервера

Прекращение поддержки расширения mysql

В mysqlРасширение было объявлено устаревшим в версии PHP 5.5 и удалено в версии 7.0. Код, написанный для современных серверов, должен использоватьmysqli или pdo расширения вместо этого.

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

В mysqli поддержка подготовленных операторов расширения использует ?заполнители, привязанные к ссылкам на переменные для ввода, и ссылки на переменные, привязанные к столбцам при выборке выходных строк. Обратите внимание, что для использования некоторых аспектовmysqliподготовленные операторы (в первую очередь mysqli_stmt_get_result), ваша установка PHP должна использовать собственный драйвер Mysql (mysqlnd), который также обеспечивает улучшенную производительность по сравнению со старой клиентской библиотекой MySQL.

Простой MySQLi SELECT пример запроса:

В следующем примере извлекаются 2 выходных столбца из SELECT запрос с использованием как целого, так и строкового параметра.

// A form post has supplied the input values in:
// $_POST['fruit']
// $_POST['age']

// Enable mysqli error reporting. Errors will be reported as exceptions
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// Open a new connection to the MySQL server.
$mysqli = new mysqli("host", "user", "password", "database");

// Set the correct connection charset
$mysqli->set_charset('utf8mb4');

// SQL string with input placeholders
$SQL = "SELECT firstName, email FROM users WHERE favorite_fruit = ? AND age > ?";

// Prepare the statement
$stmt = $mysqli->prepare($SQL);

// Bind parameters:
// "s" indicates a string parameter (favorite_fruit)
// "i" indicates an integer parameter (age)
$stmt->bind_param("si", $_POST['fruit'], $_POST['age']);

// Execute the statement
$stmt->execute();

// Bind result variables to fetch the columns returned:
// Supply one variable for each column. Variables are bound by reference
$stmt->bind_result($firstName, $email);

// Fetch rows:
// On each loop iteration, the variables $firstName, $email will be 
// populated with values from the currently fetched row.
while ($stmt->fetch()) {
    echo "Name: $firstName, Email: $email\n";
}

// Close the prepared statement (optional)
$stmt->close();

Связанные теги