Sous PHP, l’utilisation de paramètres dans SQL peut rendre la tâche fastidieuse avec les multiples concaténations.
La fonction sprintf peut simplifier les choses…
Création de la requête SQL en utilisant la fonction sprintf. Cela permet d’éviter des concaténations fastidieuses.
$sql = sprintf("SELECT *
FROM clients JOIN commandes ON clients.numclient = commandes.numclient
WHERE numclient=%s AND date=%s",
GetSQLValueString($client,"text"),
GetSQLValueString($dateCmd,"date")
);
$rs = mysql_query($sql) or die ("Erreur :
" . $sql . "
--
"
. "" . mysql_error() . "");
Une fonction très pratique dont je ne connais pas l'auteur. Cette fonction permet de protéger les paramètres passés à la requête SQL.
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
Pas de billet en relation.