PHP mysqli_stmt_prepare MySQLi 函数
-
定义和用法
mysqli_stmt_prepare - 准备要执行的SQL语句 -
版本支持
PHP4 PHP5 PHP7 不支持 支持 支持 -
语法
mysqli_stmt_prepare ( mysqli_stmt $stmt, string $query )
准备以空终止的字符串查询所指向的SQL查询。 在执行语句或获取行之前,必须使用 mysqli_stmt_bind_param() 和 mysqli_stmt_bind_result() 将参数标记绑定到应用程序变量。 -
参数
参数 必需的 描述 stmt 是 由 mysqli_stmt_init() 返回的 statement 标识。 query 是 查询,以字符串形式。它必须包含一个SQL语句。 通过在适当位置嵌入问号(?)字符,可以在SQL语句中包括一个或多个参数标记。 注意: 您不应在语句中添加终止分号或\g。
注意:标记仅在SQL语句中的某些位置合法。例如,在INSERT语句的VALUES()列表中(允许为一行指定列值),或者在与WHERE子句中的列进行比较以指定比较值时,允许使用它们。但是,不允许在标识符(例如表名或列名),选择列表中使用SELECT语句返回的列的标识符(例如表名或列名)或指定二进制运算符的两个操作数(例如=等号)时使用它们。后一种限制是必要的,因为将无法确定参数类型。通常,参数仅在数据操作语言(DML)语句中有效,而在数据定义语言(DDL)语句中无效。
-
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE。 -
示例
<?php $link = mysqli_connect("localhost", "my_user", "my_password", "world"); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } $city = "Amersfoort"; /* create a prepared statement */ $stmt = mysqli_stmt_init($link); if (mysqli_stmt_prepare($stmt, 'SELECT District FROM City WHERE Name=?')) { /* bind parameters for markers */ mysqli_stmt_bind_param($stmt, "s", $city); /* execute query */ mysqli_stmt_execute($stmt); /* bind result variables */ mysqli_stmt_bind_result($stmt, $district); /* fetch value */ mysqli_stmt_fetch($stmt); printf("%s is in district %s\n", $city, $district); /* close statement */ mysqli_stmt_close($stmt); } /* close connection */ mysqli_close($link);
-
相关函数
mysqli_stmt_init() - 初始化一条语句并返回一个用于 mysqli_stmt_prepare(调用)的对象mysqli_stmt_execute() - 执行准备好的查询mysqli_stmt_fetch() - 从准备好的语句中获取结果到绑定变量中mysqli_stmt_bind_param() - 将变量绑定到准备好的语句作为参数mysqli_stmt_bind_result() - 将变量绑定到准备好的语句以存储结果mysqli_stmt_get_result() - 从准备好的语句获取结果集mysqli_stmt_close() - 关闭准备好的语句