English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Basic PHP Tutorial

Advanced PHP Tutorial

PHP & MySQL

PHP Reference Manual

Использование и пример функции mysqli_stmt_execute() PHP

PHP MySQLi справочник

Функция mysqli_stmt_execute() выполняет подготовленный запрос.

Определение и использование

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

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

Грамматика

mysqli_stmt_execute($stmt);

Параметр

НомерПараметры и описание
1

con(обязателен)

Это объект подготовленного запроса.

Возвратное значение

Функция mysqli_stmt_execute() PHP возвращает булево значение, в случае успеха:true, в случае ошибки:false.

Версия PHP

Эта функция была введена в PHP версии 5 и может использоваться во всех более поздних версиях.

Онлайн пример

Предположим, что мы уже создали таблицу с именем employee в базе данных MySQL, содержащую следующее:

mysql> select * from employee;
+------------+--------------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+--------------+------+------+--------+
| Vinay | Bhattacharya | 20 | M | 16000 |
| Sharukh    | Sheik        |   25 | M    |  18300 |
| Trupthi    | Mishra       |   24 | F    |  36000 |
| Sheldon | Cooper | 25 | M | 12256 |
| Sarmista | Sharma | 28 | F | 15000 |
+------------+--------------+------+------+--------+
5 строк в наборе (0.00 сек)

Ниже приведен пример демонстрации:mysqli_stmt_execute()Использование функции (по процессуальному стилю), выполнение и предварительно подготовленные update-запросы:

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   $stmt = mysqli_prepare($con, "UPDATE employee set INCOME=INCOME-? where INCOME >?");
   mysqli_stmt_execute($stmt, "si", $reduct, $limit);
   $limit = 16000;
   $reduct = 5000;
   //Выполнение инструкции
   mysqli_stmt_execute($stmt);
   print("Запись обновлена......\n");
   //Конец инструкции
   mysqli_stmt_execute($stmt);
   //Закрытие подключения
   mysqli_close($con);
?>

Вывод результатов

Запись обновлена......

После выполнения вышеуказанного кода:employeeСодержание таблицы таково:

mysql> select * from employee;
+------------+--------------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE | SEX | INCOME |
+------------+--------------+------+------+--------+
| Vinay | Bhattacharya | 20 | M | 16000 |
| Sharukh | Sheik | 25 | M | 13300 |
| Trupthi | Mishra | 24 | F | 31000 |
| Sheldon | Cooper | 25 | M | 12256 |
| Sarmista | Sharma | 28 | F | 15000 |
+------------+--------------+------+------+--------+
5 строк в наборе (0.00 сек)

Онлайн пример

在面向 объектной стилистики, грамматика этой функции такая:$stmt->execute();。以下是面向对象风格中此函数的示例,执行以及预处理好的insert语句

<?php
   //Установление соединения
   $con = new mysqli("localhost", "root", "password", "mydb");
   //Создание таблицы
   $con -> query("Создать таблицу myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))");
   print("Создание таблицы.....\n");
   //Использование подготовленной инструкции для вставки значений в таблицу
   $stmt = $con->prepare("INSERT INTO myplayers values(?, ?, ?, ?, ?)");
   $stmt->bind_param('issss', $id, $fname, $lname, $pob, $country);
   $id = 1;
   $fname = 'Shikhar';
   $lname = 'Dhawan';
   $pob = 'Delhi';
   $country = 'India';
   //Выполнение инструкции
   $stmt->execute();
   //Конец инструкции
   $stmt->close();
   //Закрытие подключения
   $con->close();
?>

Вывод результатов

Создание таблицы.....

Онлайн пример

Вы также можете выполнитьmysqli_stmt_prepare()Инструкции, созданные функцией

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   $query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT)"; 
   mysqli_query($con, $query);
   print("Создание таблицы.....\n");
   //Инициализация инструкции
   $stmt = mysqli_stmt_init($con);
   mysqli_stmt_prepare($stmt, 'INSERT INTO Test values(?, ?)');
   mysqli_stmt_bind_param($stmt, 'si', $Name, $Age);
   $Name = 'Raju';
   $Age = 25;
   print("Вставка записей.....");
   //Выполнение инструкции
   mysqli_stmt_execute($stmt);
   //Конец инструкции
   mysqli_stmt_close($stmt);
   //Закрытие подключения
   mysqli_close($con);
?>

Вывод результатов

Создание таблицы.....
Вставка записей.....

PHP MySQLi справочник