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_packetbytes).

  • 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