Object oriented style
Procedural style
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.
Procedural style only: A statement identifier returned by mysqli_stmt_init().
A string that contains one or more characters which specify the types for the corresponding bind variables:
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 |
The number of variables and length of string types
must match the parameters in the statement.
Returns TRUE
on success or FALSE
on failure.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <?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(); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <?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.
Please login to continue.