SunshinePHP Developer Conference 2015

SQLite3Stmt::bindParam

(PHP 5 >= 5.3.0)

SQLite3Stmt::bindParamLie un paramètre à une variable de requête

Description

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

Lie un paramètre à une variable de requête.

Liste de paramètres

sql_param

Une chaîne de caractères identifiant la variable de requête sur laquelle le paramètre doit être lié.

param

Le paramètre à lier à la variable de requête.

type

Le type de données du paramètre à lier.

  • SQLITE3_INTEGER : La valeur est un entier signé, stocké sur 1, 2, 3, 4, 6, ou 8 octets, suivant la grandeur de la valeur.

  • SQLITE3_FLOAT : La valeur est un nombre à virgule flottante, stocké sur 8 octets.

  • SQLITE3_TEXT : La valeur est un texte, stocké en utilisant l'encodage de la base de données (UTF-8, UTF-16BE ou UTF-16-LE).

  • SQLITE3_BLOB : La valeur est un BLOB, stocké exactement de la façon dont il a été fourni.

  • SQLITE3_NULL : La valeur est la valeur NULL.

Valeurs de retour

Retourne TRUE si le paramètre est lié à la variable de requête, FALSE si une erreur survient.

add a note add a note

User Contributed Notes 3 notes

up
0
Anonymous
23 hours 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.
up
-3
Cassiano Martin
8 months 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.

eg:

$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);

$data=explode(',','php,sometimes,woofs');

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.

$temp=explode(',','php,sometimes,woofs');
$data[0]=$temp[0];
$data[1]=$temp[1];
$data[2]=$temp[2];
up
-6
Anonymous
3 years ago
Note:

$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