SQLite3Stmt::bindValue

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3Stmt::bindValueLie la valeur d'un paramètre à une variable de déclaration

Description

publicSQLite3Stmt::bindValue(string|int$param, mixed$value, int$type = SQLITE3_TEXT): bool

Lie la valeur d'un paramètre à une variable de déclaration.

Attention

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.

Liste de paramètres

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 est null, c'était toujours traité comme SQLITE3_NULL, peu importe le type fournie.

Valeurs de retour

Retourne true si la valeur a été liée à la variable de déclaration, ou false si une erreur survient.

Historique

VersionDescription
7.4.0param supporte désormais la notation @param.

Exemples

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" }

Voir aussi

To Top