ADOdb Library for PHP Manual
Prev Bind Next

Bind($stmt, $var, $size=4001, $type=false, $name=false)

This is a low-level function supported only by the oci8 driver. Avoid using unless you only want to support Oracle. The Parameter( ) function is the recommended way to go with bind variables.

Bind( ) allows you to use bind variables in your sql statement. This binds a PHP variable to a name defined in an Oracle sql statement that was previously prepared using Prepare(). Oracle named variables begin with a colon, and ADOdb requires the named variables be called :0, :1, :2, :3, etc. The first invocation of Bind() will match :0, the second invocation will match :1, etc. Binding can provide 100% speedups for insert, select and update statements.

The other variables, $size sets the buffer size for data storage, $type is the optional descriptor type OCI_B_FILE (Binary-File), OCI_B_CFILE (Character-File), OCI_B_CLOB (Character-LOB), OCI_B_BLOB (Binary-LOB) and OCI_B_ROWID (ROWID). Lastly, instead of using the default :0, :1, etc names, you can define your own bind-name using $name.

The following example shows 3 bind variables being used: p1, p2 and p3. These variables are bound to :0, :1 and :2.

    $stmt = $DB->Prepare("insert into table (col0, col1, col2) values (:0, :1, :2)");
    
$DB->Bind($stmt, $p1);
    
$DB->Bind($stmt, $p2);
    
$DB->Bind($stmt, $p3);
    for (
$i = 0; $i < $max; $i++) {
        
$p1 = ?; $p2 = ?; $p3 = ?;
        
$DB->Execute($stmt);
    }
    
You can also use named variables:

    
$stmt = $DB->Prepare("insert into table (col0, col1, col2) values (:name0, :name1, :name2)");
    
$DB->Bind($stmt, $p1, "name0");
    
$DB->Bind($stmt, $p2, "name1");
    
$DB->Bind($stmt, $p3, "name2");
    for (
$i = 0; $i < $max; $i++) {
        
$p1 = ?; $p2 = ?; $p3 = ?;
        
$DB->Execute($stmt);
    }


Prev Home Next
fnExecute and fnCacheExecute Up BlankRecordSet

Sponsored by phpLens