6.4.21 mysql_stmt_prepare ()

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

描述

给出返回的语句处理程序mysql_stmt_init (),准备由字符串指向的SQL语句stmt_str并返回一个状态值。字符串长度应该由长度论点。该字符串必须由单个SQL语句组成。不应添加结束分号()或\ g对声明。

应用程序可以在SQL语句中通过嵌入问号(?)字符输入到SQL字符串的适当位置。

这些标记只在SQL语句的某些地方是合法的。例如,他们被允许在值()的名单插入语句(为一行指定列值),或与中的列进行比较在哪里子句指定一个比较值。但是,它们不允许用于标识符(如表名或列名),也不允许指定二进制操作符的两个操作数等号。后一个限制是必要的,因为不可能确定参数类型。通常,参数只在数据操作语言(DML)语句中合法,而在数据定义语言(DDL)语句中不合法。

参数标记必须使用绑定到应用程序变量mysql_stmt_bind_param ()在执行语句之前。

对已准备语句引用的表或视图的元数据更改将被检测到,并在下一次执行语句时自动重新准备该语句。有关更多信息,请参见准备语句和存储程序的缓存

返回值

成功为零。如果发生错误,则为非零。

错误

如果prepare操作不成功(即,mysql_stmt_prepare ()返回非零),则可以通过调用mysql_stmt_error ()