Probeleme avec requete update(php)
Fermé
titou123
Messages postés
70
Date d'inscription
mercredi 20 octobre 2010
Statut
Membre
Dernière intervention
21 octobre 2011
-
5 juin 2011 à 14:18
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 7 juin 2011 à 21:22
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 7 juin 2011 à 21:22
A voir également:
- Probeleme avec requete update(php)
- Windows update 0x80070643 - Accueil - Windows
- Windows update bloqué - Guide
- Easy php - Télécharger - Divers Web & Internet
- Asus live update - Télécharger - Utilitaires
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
7 réponses
titou123
Messages postés
70
Date d'inscription
mercredi 20 octobre 2010
Statut
Membre
Dernière intervention
21 octobre 2011
5 juin 2011 à 16:30
5 juin 2011 à 16:30
j'ai essayé mais ça n'as pas marché .svp pouvez vous réécrire la requête correctement.
Bonjour,
Pour reprendre le conseil de Varaldi Q, cela donnerait je pense:
$requete="UPDATE articles SET codeA=".$codeA.",libA=".$libA.",puA=".$puA.",codeCat=".$cat." WHERE codeA=".$id;
Pour reprendre le conseil de Varaldi Q, cela donnerait je pense:
$requete="UPDATE articles SET codeA=".$codeA.",libA=".$libA.",puA=".$puA.",codeCat=".$cat." WHERE codeA=".$id;
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
475
6 juin 2011 à 05:57
6 juin 2011 à 05:57
Euh... oui mais non.
Suffit de faire:
Voici ce que je propose:
Je me suis permis au passage de rajouter la fonction mysql_real_escape_string()
Voir cette page: https://www.php.net/manual/fr/function.mysql-real-escape-string.php
Suffit de faire:
echo $requete;pour voir qu'on se retrouve avec le même résultat.
Voici ce que je propose:
$requete='UPDATE articles SET codeA="'.mysql_real_escape_string($codeA).'", libA="'.mysql_real_escape_string($libA).'", puA="'.mysql_real_escape_string($puA).'", codeCat="'.mysql_real_escape_string($cat).'" WHERE codeA="'.mysql_real_escape_string($id).'";
Je me suis permis au passage de rajouter la fonction mysql_real_escape_string()
Voir cette page: https://www.php.net/manual/fr/function.mysql-real-escape-string.php
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
475
6 juin 2011 à 13:58
6 juin 2011 à 13:58
Le message de mpmp93 explique la différence entre tout exemple et le miens.
Tu peux comparer les deux exemple assez facilement.
Prends une requête simple.
Tu peux très bien l'écrire à ta manière:
Donne simplement une valeur à la variable $var.
Et fait un echo sur la variable $sql.
Maintenant, modifie la valeur de la variable:
Compare les deux requêtes (ce qui est affiché avec echo).
L'ajout d'apostrophe et/ou de guillemet (voire mon exemple ou celui de mpmp93) permet d'avoir des valeurs qui contiennent des espaces.
En fait, ça change tout.
L'utilisation de la fonction mysql_real_escape_string() n'a rien à voir. Elle permet de protéger les requêtes SQL.
Tu peux comparer les deux exemple assez facilement.
Prends une requête simple.
$sql='SELECT * FROM table WHERE champ="'.$var.'"';
Tu peux très bien l'écrire à ta manière:
$sql="SELECT * FROM table WHERE champ=".$var;
Donne simplement une valeur à la variable $var.
$var='exemple';
Et fait un echo sur la variable $sql.
$var='exemple'; $sql="SELECT * FROM table WHERE champ=".$var; echo $sql;
Maintenant, modifie la valeur de la variable:
$var='un exemple de code';
Compare les deux requêtes (ce qui est affiché avec echo).
L'ajout d'apostrophe et/ou de guillemet (voire mon exemple ou celui de mpmp93) permet d'avoir des valeurs qui contiennent des espaces.
En fait, ça change tout.
L'utilisation de la fonction mysql_real_escape_string() n'a rien à voir. Elle permet de protéger les requêtes SQL.
mpmp93
Messages postés
6648
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 339
6 juin 2011 à 09:30
6 juin 2011 à 09:30
Bonjour,
Simple, dans:
UPDATE articles SET codeA=$codeA,libA=$libA,puA=$puA,codeCat=$cat WHERE codeA=$id"
si je prends libA=$libA où $libA contient "NOIRMOUTIER" il y a des chances que ça passe:*
libA=NOIRMOUTIER
par contre, si $libA contient "NOISY LE GRAND", ça casse:
libA=NOISY LE GRAND
Toute chaîne affectée à un champ doit être encadrée de guillemets:
libA='NOISY LE GRAND'
Donc:
UPDATE articles SET codeA=$codeA,libA='$libA',puA='$puA', codeCat='$cat' WHERE codeA=$id"
Si vous mettez des valeurs numériques entre guillemets, ça passera également:
UPDATE articles SET codeA='$codeA', libA='$libA', puA='$puA', codeCat='$cat' WHERE codeA='$id'"
A+
Simple, dans:
UPDATE articles SET codeA=$codeA,libA=$libA,puA=$puA,codeCat=$cat WHERE codeA=$id"
si je prends libA=$libA où $libA contient "NOIRMOUTIER" il y a des chances que ça passe:*
libA=NOIRMOUTIER
par contre, si $libA contient "NOISY LE GRAND", ça casse:
libA=NOISY LE GRAND
Toute chaîne affectée à un champ doit être encadrée de guillemets:
libA='NOISY LE GRAND'
Donc:
UPDATE articles SET codeA=$codeA,libA='$libA',puA='$puA', codeCat='$cat' WHERE codeA=$id"
Si vous mettez des valeurs numériques entre guillemets, ça passera également:
UPDATE articles SET codeA='$codeA', libA='$libA', puA='$puA', codeCat='$cat' WHERE codeA='$id'"
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Moi a ta place je commencerais par tester s'il y a bien une connexion donc
ensuite, si pas de problème de connexion ajouter les apostrophes comme a dis mpmp93
si toujours rien faut vérifier si les nom des champs de la bdd sont identiques a ceux écrits dans la requête, attention a la casse (majuscule et minuscule).
if (mysql_connect($host,$user,$pwd)){ if (mysql_select_db($bd)){ //......le reste du code } else {echo 'impossible de trouver la table';} } else { echo 'impossible de se connecter a la BDD';}
ensuite, si pas de problème de connexion ajouter les apostrophes comme a dis mpmp93
"UPDATE articles SET codeA='$codeA', libA='$libA', puA='$puA', codeCat='$cat' WHERE codeA='$id'"
si toujours rien faut vérifier si les nom des champs de la bdd sont identiques a ceux écrits dans la requête, attention a la casse (majuscule et minuscule).
titou123
Messages postés
70
Date d'inscription
mercredi 20 octobre 2010
Statut
Membre
Dernière intervention
21 octobre 2011
7 juin 2011 à 21:05
7 juin 2011 à 21:05
merci beaucoup pour votre aide :)
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
475
7 juin 2011 à 21:22
7 juin 2011 à 21:22
N'oublie pas de modifier le statut comme tel (en haut)