PHP 7.1.21 Released


(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::bindParamBinds a parameter to a statement variable


public bool SQLite3Stmt::bindParam ( mixed $sql_param , mixed &$param [, int $type ] )

Binds a parameter to a statement variable.



Either a string or an int identifying the statement variable to which the parameter should be bound.


The parameter to bind to a statement variable.


The data type of the parameter to bind.

  • SQLITE3_INTEGER: The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.

  • SQLITE3_FLOAT: The value is a floating point value, stored as an 8-byte IEEE floating point number.

  • SQLITE3_TEXT: The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16-LE).

  • SQLITE3_BLOB: The value is a blob of data, stored exactly as it was input.

  • SQLITE3_NULL: The value is a NULL value.

As of PHP 7.0.7, if type is omitted, it is automatically detected from the type of the param: boolean and integer are treated as SQLITE3_INTEGER, float as SQLITE3_FLOAT, null as SQLITE3_NULL and all others as SQLITE3_TEXT. Formerly, if type has been omitted, it has defaulted to SQLITE3_TEXT.


If param is NULL, it is always treated as SQLITE3_NULL, regardless of the given type.

Valor Retornado

Returns TRUE if the parameter is bound to the statement variable, FALSE on failure.


Exemplo #1 SQLite3Stmt::bindParam() Usage

This example shows how a single prepared statement with a single parameter binding can be used to insert multiple rows with different values.

= new SQLite3(':memory:');
$db->exec("CREATE TABLE foo (bar TEXT)");

$stmt $db->prepare("INSERT INTO foo VALUES (:bar)");

$bar 'baz';

$bar 42;

$res $db->query("SELECT * FROM foo");
while ((
$row $res->fetchArray(SQLITE3_ASSOC))) {

O exemplo acima irá imprimir:

array(1) {
  string(3) "baz"
array(1) {
  string(2) "42"

Veja Também

add a note add a note

User Contributed Notes 3 notes

3 years ago
Note that this bindParam needs a variable as the second parameter.
Use bindValue if you want to bind a value, such an array item.
Cassiano Martin
4 years ago
If you use any function to put value into an array, and bind it to the statement, PHP will fill NULLs on the binded field.


$st=$db->prepare('insert into xxx(x1,x2,x3) values(?,?,?)');
$st->bindParam(1, $data[0], SQLITE3_TEXT);
$st->bindParam(2, $data[1], SQLITE3_TEXT);
$st->bindParam(3, $data[2], SQLITE3_TEXT);


This will completely fail, and NULLs will be inserted on the table.

You need to manually assign every variable on the array. Any other function which completes it, will fail and NULLs are inserted.

7 years ago

$stmt->bindParam(1, 'lol', SQLITE3_TEXT);

That would trigger a fatal error as you cannot pass argument 2 by reference as it is a value.
To Top