Выполняет подготовленный запрос


mysqli_stmt_execute

(PHP 5)

mysqli_stmt::execute -- mysqli_stmt_execute Выполняет подготовленный запрос

Описание

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

bool mysqli_stmt::execute ( void )

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

bool mysqli_stmt_execute ( mysqli_stmt $stmt )

Выполняет запрос, который был ранее подготовлен функцией mysqli_prepare(). Если в запросе есть метки параметров, они будут заменены привязанными к ним значениями.

Если выполняются запросы UPDATE, DELETE, или INSERT, то количество измененных строк можно определить фунцией mysqli_stmt_affected_rows(). Если запрос возвращает результирующий набор, для извлечения данных из него можно использовать функцию mysqli_stmt_fetch().

Замечание:

Если используется mysqli_stmt_execute(), то прежде чем выполнить следующий запрос, необходимо выбрать все данные из текущего результирующего набора функцией mysqli_stmt_fetch().

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

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

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

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

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

<?php
$mysqli 
= new mysqli("localhost""my_user""my_password""world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    
printf("Не удалось подключиться: %s\n"mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* подготавливаем запрос на вставку строк */
$query "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt $mysqli->prepare($query);

$stmt->bind_param("sss"$val1$val2$val3);

$val1 'Stuttgart';
$val2 'DEU';
$val3 'Baden-Wuerttemberg';

/* выполняем запрос */
$stmt->execute();

$val1 'Bordeaux';
$val2 'FRA';
$val3 'Aquitaine';

/* выполняем запрос */
$stmt->execute();

/* закрываем запрос */
$stmt->close();

/* получаем все строки из таблицы myCity */
$query "SELECT Name, CountryCode, District FROM myCity";
if (
$result $mysqli->query($query)) {
    while (
$row $result->fetch_row()) {
        
printf("%s (%s,%s)\n"$row[0], $row[1], $row[2]);
    }
    
/* очищаем результирующий набор */
    
$result->close();
}

/* удаляем таблицу */
$mysqli->query("DROP TABLE myCity");

/* закрываем соединение */
$mysqli->close();
?>

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

<?php
$link 
mysqli_connect("localhost""my_user""my_password""world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    
printf("Не удалось подключиться: %s\n"mysqli_connect_error());
    exit();
}

mysqli_query($link"CREATE TABLE myCity LIKE City");

/* подготавливаем запрос на вставку строк */
$query "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt mysqli_prepare($link$query);

mysqli_stmt_bind_param($stmt"sss"$val1$val2$val3);

$val1 'Stuttgart';
$val2 'DEU';
$val3 'Baden-Wuerttemberg';

/* выполняем запрос */
mysqli_stmt_execute($stmt);

$val1 'Bordeaux';
$val2 'FRA';
$val3 'Aquitaine';

/* выполняем запрос */
mysqli_stmt_execute($stmt);

/* закрываем запрос */
mysqli_stmt_close($stmt);

/* получаем все строки из таблицы myCity */
$query "SELECT Name, CountryCode, District FROM myCity";
if (
$result mysqli_query($link$query)) {
    while (
$row mysqli_fetch_row($result)) {
        
printf("%s (%s,%s)\n"$row[0], $row[1], $row[2]);
    }
    
/* очищаем результирующий набор */
    
mysqli_free_result($result);
}

/* удаляем таблицу */
mysqli_query($link"DROP TABLE myCity");

/* закрываем соединение */
mysqli_close($link);
?>

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

 Stuttgart (DEU,Baden-Wuerttemberg) Bordeaux (FRA,Aquitaine) 

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

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса