Php/docs/mysqli-stmt.bind-param
mysqli_stmt::bind_param
mysqli_stmt_bind_param
(PHP 5, PHP 7)
mysqli_stmt::bind_param -- mysqli_stmt_bind_param — Binds variables to a prepared statement as parameters
Description
Object oriented style
Procedural style
mysqli_stmt_bind_param
( mysqli_stmt $stmt
, string $types
, mixed &$var
, mixed &...$vars
) : 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
bintypesand 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.
Parameters
stmtProcedural style only: A statement identifier returned by mysqli_stmt_init().
typesA 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 var
varsThe number of variables and length of string
typesmust match the parameters in the statement.
Return Values
Returns TRUE on success or FALSE on failure.
Examples
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 */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);?>
The above examples will output:
1 Row inserted. 1 Row deleted.
See Also
- mysqli_stmt_bind_result() - Binds variables to a prepared statement for result storage
- mysqli_stmt_execute() - Executes a prepared Query
- mysqli_stmt_fetch() - Fetch results from a prepared statement into the bound variables
- mysqli_prepare() - Prepare an SQL statement for execution
- mysqli_stmt_send_long_data() - Send data in blocks
- mysqli_stmt_errno() - Returns the error code for the most recent statement call
- mysqli_stmt_error() - Returns a string description for last statement error