par
Zurg » 13 déc. 2005, 14:28
Bonjour à tous !!
Oui je sais, ça fait au moins 3 jours que je n'ai pas posé de question...mais bon, que voulez-vous, vous me manquiez !!
Alors, la question du jour :
J'utilise ce bout de code dont la fonction GetSQLValueString n'a pas été faite par moi, mais je l'utilise pour une mise à jour dans une table, comme ceci :
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;
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . $_SERVER['QUERY_STRING'];
}
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1"))
{
if ($diff==1)
{
$updateSQL = sprintf("UPDATE clients SET nom=%s, prenom=%s, nomEntr=%s, adresse=%s, ville=%s, cp=%s, email=%s, tel=%s, pass=%s, statut=%s, nomF-%s, prenomF-%s, nomEntrF-%s, adresseF-%s, villeF-%s, cpF-%s, telF-%s WHERE ID=%s",
GetSQLValueString($_POST['nom'], "text"),
GetSQLValueString($_POST['prenom'], "text"),
GetSQLValueString($_POST['nomEntr'], "text"),
GetSQLValueString($_POST['adresse'], "text"),
GetSQLValueString($_POST['ville'], "text"),
GetSQLValueString($_POST['cp'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['tel'], "text"),
GetSQLValueString($pass, "text"),
GetSQLValueString($_POST['statut'], "text"),
GetSQLValueString($_POST['nomF'], "text"),
GetSQLValueString($_POST['prenomF'], "text"),
GetSQLValueString($_POST['nomEntrF'], "text"),
GetSQLValueString($_POST['adresseF'], "text"),
GetSQLValueString($_POST['villeF'], "text"),
GetSQLValueString($_POST['cpF'], "text"),
GetSQLValueString($_POST['telF'], "text"),
GetSQLValueString($_POST['ID'], "int"));
}
else
{
$updateSQL = sprintf("UPDATE clients SET nom=%s, prenom=%s, nomEntr=%s, adresse=%s, ville=%s, cp=%s, email=%s, tel=%s, pass=%s, statut=%s WHERE ID=%s",
GetSQLValueString($_POST['nom'], "text"),
GetSQLValueString($_POST['prenom'], "text"),
GetSQLValueString($_POST['nomEntr'], "text"),
GetSQLValueString($_POST['adresse'], "text"),
GetSQLValueString($_POST['ville'], "text"),
GetSQLValueString($_POST['cp'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['tel'], "text"),
GetSQLValueString($pass, "text"),
GetSQLValueString($_POST['statut'], "text"),
GetSQLValueString($_POST['ID'], "int"));
}
Je vous épargne le reste, affichage et compagnie...
Nous sommes dans la partie admin d'une boutique, partie gestion des clients.
La variable $diff sert à déterminer si le client dispose d'une adresse de livraison différente de son adresse de facturation.
A l'execution j'obitens ce message d'erreur :
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-'paul', prenomF-'brioche', nomEntrF-NULL, adresseF-'3 rue des b
Ce qui est très troublant c'est que dans la 2e partie du test (else), le code s'exécute proprement, et la table est bien mise à jour, mais dans le premier cas, ($diff==1), j'ai le message d'erreur. Pourtant, je ne vois pas où se trouverait cette erreur.
Quelqu'un a-t-il une idée??
Merci d'avance...
Bonjour à tous !!
Oui je sais, ça fait au moins 3 jours que je n'ai pas posé de question...mais bon, que voulez-vous, vous me manquiez !! ;)
Alors, la question du jour :
J'utilise ce bout de code dont la fonction GetSQLValueString n'a pas été faite par moi, mais je l'utilise pour une mise à jour dans une table, comme ceci :
[php]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;
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . $_SERVER['QUERY_STRING'];
}
if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1"))
{
if ($diff==1)
{
$updateSQL = sprintf("UPDATE clients SET nom=%s, prenom=%s, nomEntr=%s, adresse=%s, ville=%s, cp=%s, email=%s, tel=%s, pass=%s, statut=%s, nomF-%s, prenomF-%s, nomEntrF-%s, adresseF-%s, villeF-%s, cpF-%s, telF-%s WHERE ID=%s",
GetSQLValueString($_POST['nom'], "text"),
GetSQLValueString($_POST['prenom'], "text"),
GetSQLValueString($_POST['nomEntr'], "text"),
GetSQLValueString($_POST['adresse'], "text"),
GetSQLValueString($_POST['ville'], "text"),
GetSQLValueString($_POST['cp'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['tel'], "text"),
GetSQLValueString($pass, "text"),
GetSQLValueString($_POST['statut'], "text"),
GetSQLValueString($_POST['nomF'], "text"),
GetSQLValueString($_POST['prenomF'], "text"),
GetSQLValueString($_POST['nomEntrF'], "text"),
GetSQLValueString($_POST['adresseF'], "text"),
GetSQLValueString($_POST['villeF'], "text"),
GetSQLValueString($_POST['cpF'], "text"),
GetSQLValueString($_POST['telF'], "text"),
GetSQLValueString($_POST['ID'], "int"));
}
else
{
$updateSQL = sprintf("UPDATE clients SET nom=%s, prenom=%s, nomEntr=%s, adresse=%s, ville=%s, cp=%s, email=%s, tel=%s, pass=%s, statut=%s WHERE ID=%s",
GetSQLValueString($_POST['nom'], "text"),
GetSQLValueString($_POST['prenom'], "text"),
GetSQLValueString($_POST['nomEntr'], "text"),
GetSQLValueString($_POST['adresse'], "text"),
GetSQLValueString($_POST['ville'], "text"),
GetSQLValueString($_POST['cp'], "text"),
GetSQLValueString($_POST['email'], "text"),
GetSQLValueString($_POST['tel'], "text"),
GetSQLValueString($pass, "text"),
GetSQLValueString($_POST['statut'], "text"),
GetSQLValueString($_POST['ID'], "int"));
}[/php]
Je vous épargne le reste, affichage et compagnie...
Nous sommes dans la partie admin d'une boutique, partie gestion des clients.
La variable $diff sert à déterminer si le client dispose d'une adresse de livraison différente de son adresse de facturation.
A l'execution j'obitens ce message d'erreur :
[quote]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-'paul', prenomF-'brioche', nomEntrF-NULL, adresseF-'3 rue des b[/quote]
Ce qui est très troublant c'est que dans la 2e partie du test (else), le code s'exécute proprement, et la table est bien mise à jour, mais dans le premier cas, ($diff==1), j'ai le message d'erreur. Pourtant, je ne vois pas où se trouverait cette erreur.
Quelqu'un a-t-il une idée??
Merci d'avance...