|
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().
См. Пример в Разделе 21.8.11.10,"mysql_stmt_execute()"
.