Skip to content

$sql.literalize

Description

Littéralise un prepared statement, c'est-à-dire retourne la requête dans laquelle les références de valeurs sont substituées par ces dernières.

Par exemple, la méthode retournera select 1 si on lui passe la requête
select ? avec un tableau de valeur [ 1 ].

Syntaxe

$sql.literalize( query , [ data ] )

Paramètres

query string / pojo
Requête à reprendre
data array / map / string / number / date / time / timestamp / file

Jeu de données à intégrer dans la requête

Le paramètre peut prendre plusieurs formes en fonction de la requête sur laquelle il doit s'appliquer:

  • Valeur null: La requête n'attend pas de paramètre ou n'utilise pas la syntaxe des prepared statement. Dans ce cas, la méthode ne fait que de retourner la requête reçue en paramètre.
  • Valeur litérale unique: La requête n'attend qu'un seul paramètre de type simple (string, number, date, time, timestamp ou file)
  • Tableau 1D: Dans ce cas, les valeurs du tableau sont reprises dans l'ordre comme valeurs pour le prepared statement.
  • Tableau 2D (tableau de tableau 1D) : La méthode comprend que l'on souhaite traiter plusieurs fois la requête. Elle retourne un tableau contenant une requête par jeu de données.
  • Map : Ce cas s'applique si la requête référence des paramètres nommés.
  • Tableau de map : Cette syntaxe permet de passer plusieurs jeux de données à la fois, en utilisant la notation avec des paramètres nommés. Dans ce cas, la méthode retourne un tableau contenant une requête par jeu de données.

Veuillez prendre connaissance de la note traitant de la valeur null dans la documentation de $sql.select.

Retour

Voir description.

Exemple

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$sql.literalize("select :a, :b", { a: 1, b: "te'st" });
// "select 1, 'te''st'"

$sql.literalize("select :a, :b", [ { a: 1, b: "foo" }, { a: 2, b: "bar" } ]);
// ["select 1, 'foo'", "select 2, 'bar'"]

$sql.literalize("select ?, ?", [ 1, "foo" ]);
// "select 1, 'foo'"

$sql.literalize("select ?, ?", [ [ 1, "foo" ], [ 2, "bar" ] ]);
// ["select 1, 'foo'", "select 2, 'bar'"]