Spec-Zone .ru
спецификации, руководства, описания, API
|
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()
список INSERT
оператор (чтобы определить значения столбцов для строки), или в сравнении со столбцом в a WHERE
пункт, чтобы определить сравнительное значение. Однако, им не разрешают для идентификаторов (таких как имена
таблиц или имена столбцов), или определить оба операнда бинарного оператора такой как =
знак "равно". Последнее ограничение необходимо, потому что было бы
невозможно определить тип параметра. Вообще, параметры являются законными только в Языке манипулирования данными
(DML) операторы, а не в Языке определения данных (DDL) операторы.
Маркеры параметра должны быть связаны с использованием переменных приложения mysql_stmt_bind_param()
прежде, чем выполнить оператор.
Метаданные изменяются на таблицы или просматривают упомянутый готовыми операторами, обнаруживаются и вызывают автоматическую переподготовку оператора, когда это затем выполняется. Для получения дополнительной информации см. Раздел 8.9.4, "Кэширование Готовых Операторов и Сохраненных Программ".
Нуль, если оператор был подготовлен успешно. Ненулевой, если ошибка произошла.
Команды выполнялись в неподходящем порядке.
Из памяти.
Сервер MySQL ушел.
Соединение с сервером было потеряно во время запроса
Произошла неизвестная ошибка.
Если подготовить работа была неудачна (то есть, mysql_stmt_prepare()
возвращается ненулевой), сообщение об ошибке может быть
получено, вызывая mysql_stmt_error()
.
См. Пример в Разделе 22.8.11.10,"mysql_stmt_execute()
"
.