mysqli::prepare

mysqli_prepare

(PHP 5, PHP 7, PHP 8)

mysqli::prepare -- mysqli_prepareПодготавливает SQL выражение к выполнению

Описание

Объектно-ориентированный стиль

publicmysqli::prepare(string$query): mysqli_stmt|false

Процедурный стиль

mysqli_prepare(mysqli$mysql, string$query): mysqli_stmt|false

Подготавливает SQL-запрос и возвращает указатель на это выражение, который может использоваться для дальнейших операций с этим выражением. Запрос должен состоять из одного SQL-выражения.

Шаблон оператора может содержать ноль или несколько вопросительных знаков (?), меток параметров⁠, также называемых заполнителями. Метки параметров должны быть привязаны к переменным приложения с помощью mysqli_stmt_bind_param() перед выполнением выражения.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect() или функция mysqli_init().

query

Текст запроса в виде строки. Должен состоять из одного SQL-выражения.

Выражение SQL может содержать ноль или более меток параметров, представленных знаками вопроса (?) в соответствующих позициях.

Замечание:

Эти метки можно встраивать только в определённые места в выражении. Например, они разрешены в списке VALUES() выражения INSERT (чтобы задать значения столбцов для строки), или в операциях сравнения предложения WHERE для задания сравниваемого значения. Однако они не разрешены в качестве идентификаторов (таких как имена таблиц или столбцов).

Возвращаемые значения

mysqli_prepare() возвращает объект запроса или false в случае ошибки.

Ошибки

Если уведомления об ошибках mysqli включены (MYSQLI_REPORT_ERROR) и запрошенная операция не удалась, выдаётся предупреждение. Если, кроме того, установлен режим MYSQLI_REPORT_STRICT, вместо этого будет выброшено исключение mysqli_sql_exception.

Примеры

Пример #1 Пример использования mysqli::prepare()

Объектно-ориентированный стиль

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";


$stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?");


$stmt->bind_param("s", $city);


$stmt->execute();


$stmt->bind_result($district);


$stmt->fetch();

printf("%s находится в округе %s\n", $city, $district);

Процедурный стиль

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "Amersfoort";


$stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?");


mysqli_stmt_bind_param($stmt, "s", $city);


mysqli_stmt_execute($stmt);


mysqli_stmt_bind_result($stmt, $district);


mysqli_stmt_fetch($stmt);

printf("%s находится в округе %s\n", $city, $district);
?>

Результат выполнения приведённых примеров:

Amersfoort находится в округе Utrecht

Смотрите также

  • mysqli_stmt_execute() - Выполняет подготовленное утверждение
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата
  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса в виде объекта mysqli_result
  • mysqli_stmt_close() - Закрывает подготовленный запрос
To Top