mysqli_stmt_bind_param
(no version information, might be only in CVS)
mysqli_stmt_bind_param
(no version information, might be only in CVS)
stmt->bind_param -- Binds variables to a prepared statement
as parameters
Description
Procedural style:
bool mysqli_stmt_bind_param ( object stmt, string types,
mixed var1 [, mixed var2, ...])
Object oriented style (method):
class stmt {
bool bind_param ( array types, mixed var1 [, mixed var2,
...])
}
mysqli_stmt_bind_param() is used to bind variables for the
parameter markers in the SQL statement that was passed to
mysql_prepare(). The string types contains one or more characters
which specify the types for the corresponding bind variables
Table 1. 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 send in packages
Note: If data size of a variable exceeds max. allowed package
size (max_allowed_package), you have to specify b in types
and use mysqli_stmt_send_long_data() to send the data in
packages.
The number of variables and length of string types must
match the parameters in the statement.
Return values
Returns TRUE on success or FALSE on failure.
See also
mysqli_stmt_bind_result(), mysqli_stmt_execute(), mysqli_stmt_fetch(),
mysqli_prepare(), mysqli_stmt_send_long_data(), mysqli_stmt_errno(),
mysqli_stmt_error()
Example
Example 1. Object oriented style
<?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. Procedural style
<?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 */
mysqi_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);
?>
The above examples would produce the following output:
1 Row inserted.
1 Row deleted.