Spec-Zone.ru › MySQL Connectors 1.0

6.4.22 mysql_stmt_prepare()

int
mysql_stmt_prepare(MYSQL_STMT *stmt,
                   const char *stmt_str,
                   unsigned long length)

Описание

Принимая дескриптор подготовленного оператора, возвращённый функцией mysql_stmt_init(), подготавливает SQL-запрос, указанный строкой stmt_str, и возвращает код состояния. Длина строки должна быть задана аргументом length. Строка должна содержать единственный SQL-запрос. Не добавляйте завершающую точку с запятой (;) или \g к запросу.

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

Маркеры допустимы только в определённых местах в SQL-запросах. Например, они разрешены в списке VALUES() оператора (для указания значений столбцов для строки) или в сравнении со столбцом в части WHERE (для указания значения сравнения). Однако они недопустимы для идентификаторов (таких как имена таблиц или столбцов), или для указания обоих операндов бинарного оператора, например, знака равенства (=). Последнее ограничение необходимо, так как невозможно определить тип параметра. В общем случае, параметры допустимы только в операторах языка манипулирования данными (DML), а не в операторах языка определения данных (DDL).

Маркеры параметров должны быть связаны с переменными приложения с помощью функций mysql_stmt_bind_param() или mysql_stmt_bind_named_param() перед выполнением запроса.

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

Значения возврата

Ноль в случае успеха. Неноль, если произошла ошибка.

Ошибки

  • Команды были выполнены в неправильном порядке.

  • Недостаточно памяти.

  • Сервер MySQL вышел из строя.

  • Соединение с сервером было потеряно во время запроса.

  • Произошла неизвестная ошибка.

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

Пример

См. Пример в разделе 6.4.11, «mysql_stmt_execute()».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/c-api-8.4-en/mysql-stmt-prepare.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API