mysqli_stmt::bind_param

mysqli_stmt_bind_param

(PHP 5, PHP 7)

mysqli_stmt::bind_param -- mysqli_stmt_bind_paramBinds variables to a prepared statement as parameters

说明

面向对象风格

mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] ) : bool

过程化风格

mysqli_stmt_bind_param ( mysqli_stmt $stmt , string $types , mixed &$var1 [, mixed &$... ] ) : bool

Bind variables for the parameter markers in the SQL statement that was passed to mysqli_prepare().

Note:

If data size of a variable exceeds max. allowed packet size (max_allowed_packet), you have to specify b in types and use mysqli_stmt_send_long_data() to send the data in packets.

Note:

Care must be taken when using mysqli_stmt_bind_param() in conjunction with call_user_func_array(). Note that mysqli_stmt_bind_param() requires parameters to be passed by reference, whereas call_user_func_array() can accept as a parameter a list of variables that can represent references or values.

参数

stmt

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

types

A string that contains one or more characters which specify the types for the corresponding bind variables:

Type specification chars
Character Description
i corresponding variable has type integer
d corresponding variable has type double
s corresponding variable has type string
b corresponding variable is a blob and will be sent in packets

var1

The number of variables and length of string types must match the parameters in the 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();
}

$stmt $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd'$code$language$official$percent);

$code 'DEU';
$language 'Bavarian';
$official "F";
$percent 11.2;

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n"$stmt->affected_rows);

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

/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n"$mysqli->affected_rows);

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

Example #2 过程化风格

<?php
$link 
mysqli_connect('localhost''my_user''my_password''world');

/* check connection */
if (!$link) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}

$stmt mysqli_prepare($link"INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt'sssd'$code$language$official$percent);

$code 'DEU';
$language 'Bavarian';
$official "F";
$percent 11.2;

/* execute prepared statement */
mysqli_stmt_execute($stmt);

printf("%d Row inserted.\n"mysqli_stmt_affected_rows($stmt));

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

/* Clean up table CountryLanguage */
mysqli_query($link"DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n"mysqli_affected_rows($link));

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

以上例程会输出:

1 Row inserted.
1 Row deleted.

参见

相关文章
php cubrid 函数 bind variables to a prepared statement as parametersphp cubrid 函数 bind a lob object or a string as a lob object to a prepared statement as parametersphp maxdb 函数 binds variables to a prepared statement as parametersphp maxdb 函数 binds variables to a prepared statement for result storagephp mysql xdevapi 函数 bind prepared statement variables as parametersphp postgresql 函数 sends a request to execute a prepared statement with given parameters without waiting for the result s php postgresql 函数 sends a request to create a prepared statement with the given parameters without waiting for completionphp mysqli stmt returns the total number of rows changed deleted or inserted by the last executed statementphp mysqli stmt used to get the current value of a statement attributephp mysqli stmt used to modify the behavior of a prepared statementphp mysqli stmt binds variables to a prepared statement as parametersphp mysqli stmt binds variables to a prepared statement for result storagephp mysqli stmt closes a prepared statementphp mysqli stmt fetch results from a prepared statement into the bound variablesphp mysqli stmt frees stored result memory for the given statement handlephp mysqli stmt gets a result set from a prepared statementphp mysqli stmt resets a prepared statementphp mysqli stmt returns result set metadata from a prepared statementphp mysqli stmt transfers a result set from a prepared statementphp sqlite3stmt returns the number of parameters within the prepared statement
关注编程学问公众号