PHP 手册
MySQLi_STMT

mysqli_stmt::execute

mysqli_stmt_execute

(PHP 5)

mysqli_stmt::execute -- mysqli_stmt_executeExecutes a prepared Query

说明

面向对象风格

bool mysqli_stmt::execute ( void )

过程化风格

bool mysqli_stmt_execute ( mysqli_stmt $stmt )

Executes a query that has been previously prepared using the mysqli_prepare() function. When executed any parameter markers which exist will automatically be replaced with the appropriate data.

If the statement is UPDATE, DELETE, or INSERT, the total number of affected rows can be determined by using the mysqli_stmt_affected_rows() function. Likewise, if the query yields a result set the mysqli_stmt_fetch() function is used.

Note:

When using mysqli_stmt_execute(), the mysqli_stmt_fetch() function must be used to fetch the data prior to performing any additional queries.

参数

stmt

仅以过程化样式:由 mysqli_stmt_init() 返回的 statement 标识。

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE.

范例

Example #1 面向对象风格

<?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();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt $mysqli->prepare($query);

$stmt->bind_param("sss"$val1$val2$val3);

$val1 'Stuttgart';
$val2 'DEU';
$val3 'Baden-Wuerttemberg';

/* Execute the statement */
$stmt->execute();

$val1 'Bordeaux';
$val2 'FRA';
$val3 'Aquitaine';

/* Execute the statement */
$stmt->execute();

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

/* retrieve all rows from myCity */
$query "SELECT Name, CountryCode, District FROM myCity";
if (
$result $mysqli->query($query)) {
    while (
$row $result->fetch_row()) {
        
printf("%s (%s,%s)\n"$row[0], $row[1], $row[2]);
    }
    
/* free result set */
    
$result->close();
}

/* remove table */
$mysqli->query("DROP TABLE myCity");

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

Example #2 过程化风格

<?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();
}

mysqli_query($link"CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt mysqli_prepare($link$query);

mysqli_stmt_bind_param($stmt"sss"$val1$val2$val3);

$val1 'Stuttgart';
$val2 'DEU';
$val3 'Baden-Wuerttemberg';

/* Execute the statement */
mysqli_stmt_execute($stmt);

$val1 'Bordeaux';
$val2 'FRA';
$val3 'Aquitaine';

/* Execute the statement */
mysqli_stmt_execute($stmt);

/* close statement */
mysqli_stmt_close($stmt);

/* retrieve all rows from myCity */
$query "SELECT Name, CountryCode, District FROM myCity";
if (
$result mysqli_query($link$query)) {
    while (
$row mysqli_fetch_row($result)) {
        
printf("%s (%s,%s)\n"$row[0], $row[1], $row[2]);
    }
    
/* free result set */
    
mysqli_free_result($result);
}

/* remove table */
mysqli_query($link"DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

以上例程会输出:

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

参见


MySQLi_STMT
PHP 手册