(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3Stmt::bindValue — Lie la valeur d'un paramètre à une variable de déclaration
Lie la valeur d'un paramètre à une variable de déclaration.
Avant PHP 7.2.14 et 7.3.0, respectivement, une fois que la déclaration a été exécuté SQLite3Stmt::reset() doit être appelé pour pouvoir changer la valeur des paramètres liés.
param
Soit une chaîne de caractères (pour les paramètres nommés) ou un entier
(pour les paramètres positionnel) identifiant la variable de déclaration à
laquelle la valeur doit être liée.
Si un paramètre nommé ne débute pas avec un caractère "deux point"
(:
) ou un arobase (@
), "deux point"
(:
) seront automatiquement préfixé.
Les paramètres positionnels commencent avec 1
.
value
La valeur à lier à la variable de déclaration.
type
Le type de données de la valeur à 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.
À partir de PHP 7.0.7, si type
est omit, il est
automatiquement détecté depuis le type de value
:
booléen et entier sont traités comme SQLITE3_INTEGER
,
nombre décimal comme SQLITE3_FLOAT
,
null
comme SQLITE3_NULL
et tous les autres comme SQLITE3_TEXT
.
Auparavant, si type
était omit, il était par défaut
SQLITE3_TEXT
.
Note:
Si
value
estnull
, c'était toujours traité commeSQLITE3_NULL
, peu importe letype
fournie.
Retourne true
si la valeur a été liée à la variable de déclaration, ou false
si une erreur survient.
Version | Description |
---|---|
7.4.0 |
param supporte désormais la notation
@param .
|
Exemple #1 Exemple avec SQLite3Stmt::bindValue()
<?php
$db = new SQLite3(':memory:');
$db->exec('CREATE TABLE foo (id INTEGER, bar STRING)');
$db->exec("INSERT INTO foo (id, bar) VALUES (1, 'Ceci est un test')");
$stmt = $db->prepare('SELECT bar FROM foo WHERE id=:id');
$stmt->bindValue(':id', 1, SQLITE3_INTEGER);
$result = $stmt->execute();
var_dump($result->fetchArray(SQLITE3_ASSOC));
?>
L'exemple ci-dessus va afficher :
array(1) { ["bar"]=> string(16) "Ceci est un test" }