首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysqli::prepare

(PHP 5, PHP 7)

mysqli :: prepare - mysqli_prepare - 准备执行的SQL语句

描述

面向对象的风格

代码语言:javascript
复制
mysqli_stmt mysqli::prepare ( string $query )

程序风格

代码语言:javascript
复制
mysqli_stmt mysqli_prepare ( mysqli $link , string $query )

准备SQL查询,并返回一个语句句柄,用于语句的进一步操作。查询必须由单个SQL语句组成。

在执行语句或读取行之前,必须使用mysqli_stmt_bind_param()和/或mysqli_stmt_bind_result()将参数标记绑定到应用程序变量。

参数

代码语言:txt
复制
`link`   

仅过程样式:由mysqli_connect()或mysqli_init()返回的链接标识符

query

作为一个字符串 查询

注意:您不应该在语句中添加终止分号或\ g

通过在适当的位置嵌入问号()字符,此参数可以在SQL语句中包含一个或多个参数标记。

注意:标记只在SQL语句中的某些地方合法。例如,它们可以在INSERT语句的VALUES()列表中(用于指定行的列值)或与WHERE子句中的列进行比较以指定比较值。但是,在选择列表中,不允许使用标识符(例如表或列名称),该列表将名称指定为SELECT语句返回的列,或者指定二元运算符的两个操作数,例如=等号。后一种限制是必要的,因为不可能确定参数类型。它不能比较标记NULL?一片空白太。通常,参数只在数据操纵语言(DML)语句中合法,而不在数据定义语言(DDL)语句中合法。

返回值

mysqli_prepare()返回一个语句对象或发生错误时返回FALSE

例子

示例#1 mysqli :: prepare()示例

面向对象的风格

代码语言:javascript
复制
<?php
$mysqli = new mysqli("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 */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

程序风格

代码语言:javascript
复制
<?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 */
if ($stmt = mysqli_prepare($link, "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);
?>

上面的例子会输出:

代码语言:javascript
复制
Amersfoort is in district Utrecht

扩展内容

  • mysqli_stmt_execute() - 执行准备好的查询
  • mysqli_stmt_fetch() - 从准备好的语句中获取结果到绑定变量中
  • mysqli_stmt_bind_param() - 将变量作为参数绑定到准备好的语句
  • mysqli_stmt_bind_result() - 将变量绑定到准备好的语句以存储结果
  • mysqli_stmt_close() - 关闭预准备语句

← mysqli::poll

mysqli::query →

扫码关注腾讯云开发者

领取腾讯云代金券