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
(为行指定列值),或者在与WHERE
子句中的列进行比较时指定比较值。但是,不允许将它们用于标识符(例如表名或列名),或指定二元运算符(例如=
等号)的两个操作数。后一个限制是必要的,因为无法确定参数类型。通常,参数仅在数据操作语言 (DML) 语句中合法,而在数据定义语言 (DDL) 语句中不合法。
mysql_stmt_bind_param()
在执行语句之前
,参数标记必须绑定到应用程序变量。
检测到准备好的语句引用的表或视图的元数据更改,并在下次执行语句时自动重新准备语句。有关详细信息,请参阅准备好的语句和存储程序的缓存。
-
命令的执行顺序不正确。
-
记不清。
-
MySQL 服务器已经消失。
-
查询期间与服务器的连接丢失
-
出现未知错误。
如果准备操作不成功(即
mysql_stmt_prepare()
返回非零值),则可以通过调用
mysql_stmt_error()
.