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() - 关闭准备好的语句