(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::bindParamVincular un parámetro a una variable de sentencia


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

Vincula un parámetro a una variable de sentencia.



Un string o un int que identifica la variable de sentencia que debe ser vinculada al parámetro.


El parámetro a vincular a la variable de sentencia.


El tipo de datos del parámetro a vincular.

  • SQLITE3_INTEGER: El valor es un entero con signo, almacenado en 1, 2, 3, 4, 6, u 8 bytes, dependiendo de la magnitud del valor.

  • SQLITE3_FLOAT: El valor es de tipo coma flotante, almacenado como un número de coma flotante IEEE de 8 bytes.

  • SQLITE3_TEXT: El valor es una cadena de texto, almacenado usando la codificación de la base de datos (UTF-8, UTF-16BE o UTF-16-LE).

  • SQLITE3_BLOB: El valor es de tipo blob, almacenado exactamente a como fue insertado.

  • SQLITE3_NULL: El valor es NULL.

Valores devueltos

Devuelve TRUE si el parámetro es vinculado a la variable de sentencia, FALSE en caso de fallo.

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.

6 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