mysqli PHP расширение является драйвером базы данных PHP. Не быть перепутанным с базой данных MySQL.
mysqli
Расширение PHP является преемником mysql
Расширение PHP. Это обеспечивает низкий уровень, отображающийся на интерфейс C MySQL. Принципиальные функции расширения состоят из:
mysql
расширение было удержано от использования в версии 5.5 PHP и удалено в версии 7.0. Код, написанный для современных серверов, должен использоватьmysqli
илиpdo
расширения вместо этого.
В дополнение к объектно-ориентированному интерфейсу, большинству mysqli
функции также обеспечивают эквивалентный процедурный интерфейс через снабженные префиксом функции mysqli_
. Однако эти функции были, прежде всего, предназначены для пользователей, переходящих далеко от унаследованного кода с помощью mysql расширения. Код в современной среде, как ожидают, будет использовать объектно-ориентированное программирование.
mysqli
подготовленная поддержка оператора расширения использует ?
заполнители связали со ссылками на переменную для входа и ссылками на переменную, связанными со столбцами, когда выборка произвела строки. Обратите внимание на то, что для использования некоторых аспектов mysqli
подготовленные операторы (прежде всего mysqli_stmt_get_result), Ваша установка PHP должна использовать Собственный Драйвер Mysql (mysqlnd
), который также обеспечивает улучшенную производительность по более старому MySQL Client Library.
SELECT
пример запроса:Следующий пример получает 2 выходных столбца от a 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();