mysqli_bind_param

(PHP 5 CVS only)

mysqli_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_bind_param ( object stmt, array types, mixed var1 [, mixed var2, ...])

Object oriented style (method):

class stmt {

bool bind_param ( array types, mixed var1 [, mixed var2, ...])

}

mysql_bind_param() is used to bind variables for the parameter markers in the SQL statement that was passed to mysql_prepare(). The array types specifies the types for the diffrent bind variables. Valid array values are MYSQLI_BIND_INT, MYSQLI_BIND_DOUBLE, MYSQLI_BIND_STRING and MYSQLI_SEND_DATA.

Note: If data size of a variable exceeds max. allowed package size (max_allowed_package), you have to specify MYSQLI_SEND_DATA and use mysqli_send_long_data() to send the data in packages.

The number of variables and array values must match the number of parameters in the statement.

Return values

Returns TRUE on success or FALSE on failure.

Example

Example 1. Prepared statements

<?php

    
/* --- procedural style --- */
    
$link = mysqli_connect("localhost", "mysql_user", "mysql_password", "mydb") or
        die(
"Could not connect: " . mysqli_connect_error());

    
/* create mytable */
    
mysqli_query($link, "CREATE TABLE mytable (a int, b int, c varchar(30))");
    
    
/* prepare statement and bind variables for insert statements */
    
$stmt = mysqli_prepare($link, "INSERT INTO mytable VALUES (?, ?, ?)");
    
mysqli_bind_param($stmt, array(MYSQLI_BIND_INT, MYSQLI_BIND_INT,
                      
MYSQLI_BIND_STRING), $a, $b, $c);

    
$a = 1;
    
$b = 2;
    
$c = "I prefer OpenSource software";

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

    
/* close statement and connection */
    
mysqli_close_stmt(stmt);
    
mysqli_close(link);

    
/* --- object oriented style --- */
    
$mysql = new mysqli("localhost", "mysql_user", "mysql_password", "mydb");

    
/* create mytable */
    
$mysql->query("CREATE TABLE mytable (a int, b int, c varchar(30))");
    
    
/* prepare statement and bind parameters */
    
$stmt = $mysql->prepare("INSERT INTO mytable VALUES (?, ?, ?)");
    
$stmt->bind_param(array(MYSQLI_BIND_INT, MYSQLI_BIND_INT,
                      
MYSQLI_BIND_STRING), $a, $b, $c);

    
$a = 1;
    
$b = 2;
    
$c = "I prefer opensource software";

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

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

See also

mysqli_bind_result(), mysqli_execute(), mysqli_fetch(), mysqli_prepare(), mysqli_send_long_data(), mysqli_stmt_errno(), mysqli_stmt_error()