Spec-Zone.ru › MySQL Connectors 1.0

6.4.21 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 вышел из строя.

  • Подключение к серверу было потеряно во время запроса.

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

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

Пример

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

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

Spec-Zone.ru

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