mysqli::execute_query
mysqli_execute_query
(PHP 8 >= 8.2.0)
mysqli::execute_query -- mysqli_execute_query — Підготовка, зв'язування параметрів та виконання SQL-запиту
Опис
Об'єктно-орієнтований стиль
public mysqli::execute_query(string $query, ?array $params = null): mysqli_result|bool
Процедурний стиль
mysqli_execute_query(mysqli $mysql, string $query, ?array $params = null): mysqli_result|bool
Підготовляє SQL-запит, пов'язує параметри та виконує його. Метод mysqli::execute_query() є скороченням для mysqli::prepare() mysqli_stmt::bind_param() mysqli_stmt::execute() і mysqli_stmt::get_result()
Шаблон запиту може мати нуль або більше маркерів параметрів зі знаком питання (?
), які також називаються заповнювачами. Значення параметрів мають бути представлені у вигляді масиву (array), переданого у параметр params
Підготовлений запит створюється під капотом, але він ніколи не виводиться за межі функції. Неможливо отримати доступ до властивостей запиту, як це можна зробити з об'єктом mysqli_stmt. Через це обмеження інформація про стан копіюється в об'єкт mysqliи доступна с помощью его методов, наПриклад,mysqli_affected_rows() або mysqli_error()
Зауваження :
В случае, когда функцииmysqli_execute_query() передається запит, довжина якого перевищує
max_allowed_packet
сервера, коди помилок, що повертаються, різняться в залежності від операційної системи. Поведінка така:
У Linux повертається код помилки 1153. Повідомлення про помилку означає, що отримано пакет розміром більше
max_allowed_packet
(got a packet bigger thanmax_allowed_packet
bytes).Windows повертається код помилки 2006. Повідомлення про помилку означає, що сервер недоступний (server has gone away).
Список параметрів
mysql
Тільки для процедурного стилю: об'єкт mysqli, який повернула функція mysqli_connect()или функцияmysqli_init()
query
Запит у вигляді рядка. Він повинен складатися з одного SQL-запиту.
SQL-запит може містити нуль або більше маркерів параметрів, представлених символами знака питання (?
) у відповідних позиціях.
Зауваження :
Ці мітки можна вбудовувати лише у певні місця у виразі. Наприклад, вони дозволені у списку
VALUES()
виразиINSERT
(щоб задати значення стовпців для рядка), або в операціях порівняння реченняWHERE
для завдання порівнюваного значення. Однак вони не дозволені як ідентифікатори (наприклад, імена таблиць або стовпців).
params
Необов'язковий список у вигляді масиву (array) з такою кількістю елементів, скільки пов'язаних параметрів у SQL-запиті. Кожне значення сприймається як рядок (string).
Значення, що повертаються
Повертає false
у разі виникнення помилки. Для успішних запитів, що створюють набір результатів, таких як SELECT, SHOW, DESCRIBE
илиEXPLAIN
, повертає об'єкт mysqli_result. Для інших успішних запитів повертається true
Приклади
Приклад #1 Приклад використання mysqli::execute_query()****
Об'єктно-орієнтований стиль
Loading...
Процедурний стиль
Loading...
Висновок наведених прикладів буде схожим на:
Aachen (Nordrhein-Westfalen)
Augsburg (Baijeri)
Bergisch Gladbach (Nordrhein-Westfalen)
Berlin (Berliini)
Bielefeld (Nordrhein-Westfalen)
Дивіться також
- mysqli_prepare() - готує SQL вираз до виконання
- mysqli_stmt_execute() - Виконує підготовлене затвердження
- mysqli_stmt_bind_param() - Прив'язка змінних до параметрів запиту, що готується.
- mysqli_stmt_get_result() - Отримує результат із підготовленого запиту у вигляді об'єкта mysqli_result