Php 如何在MySQLI中使用prepared语句?

Php 如何在MySQLI中使用prepared语句?,php,mysql,sql,mysqli,prepared-statement,Php,Mysql,Sql,Mysqli,Prepared Statement,我使用where子句获得了正确的结果使用prepare函数进行SELECT查询: 在EXECUTE语句中需要有using子句。所以你可以这样做: /* create a prepared statement */ if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) { /* bind parameters for markers */ $stmt->bind_param("s", $

我使用
where子句获得了正确的结果

使用prepare函数进行SELECT查询:

在EXECUTE语句中需要有using子句。所以你可以这样做:

/* 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();

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

我如何多次调用它?这里的想法是准备查询、绑定值、执行准备好的查询、绑定其他值、使用这些新值再次执行准备好的查询,等等。因此,只需再次调用
execute()
。更多信息:
mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $ 
/* 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();

    /* close statement */
    $stmt->close();
}
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query('PREPARE mid FROM "SELECT name FROM test_user WHERE id = ?"');
$mysqli->query('SET @var1 = 1;');
$res = $mysqli->query( 'EXECUTE mid USING @var1;') or die(mysqli_error($mysqli));