|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
Bonsoir,
j'ai envoyé la requête suivante : INSERT INTO `forum` ( `validee` ) VALUES ( '0'); à une bdd chez Free. La table "forum" a 2 champs : "texte" de type text et "validee" de type tinyint(1). J'ai obtenu un msg d'erreur alors que j'ai une autre table Mysql en local, ds laquelle j'ai créé la même table et que j'ai fait la même requête via phpmyadmin, et que ça a bien marché. Qqun pourrait-il m'expliquer et me donner la solution ? Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Inscription : août 2005 Messages : 515 ![]() |
Bonsoir,
il nous faut un peu de code. Cordialement, DaRiaN. |
|
|
00
|
|
|
#3 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
En fait, j'ai développé en php une interface qui permet d'envoyer une requête sql à cette base mysql et d'en lire le résultat s'il y en a un (et d'afficher le msg d'erreur s'il y en a un).
La ligne de code à pb est donc tout simplement : Code :
$result = mysql_query($sql) or die(mysql_error()); Code :
INSERT INTO `forum` ( `validee` ) VALUES ( '0'); |
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() Inscription : août 2005 Messages : 515 ![]() |
Et bien, dans ce cas, montrez nous le message d'erreur.
|
|
|
00
|
|
|
#5 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
Le msg d'erreur est tout simplement le suivant :
INSERT INTO `forum` ( `validee` ) VALUES ( \'0\'); 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 '\'0\')' at line 1 |
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Inscription : août 2005 Messages : 515 ![]() |
L'erreur vient des simples quotes... j'aimerais voir la partie du code qui modifie la variable $sql et toutes les variables qu'elle contient.
|
|
|
00
|
|
|
#7 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
Je n'ai vu la réponse que mercredi matin. Le code qui modifie $sql est tout simplement : $sql=$_POST['requete'];
vu que j'utilise un formulaire. Et la requête que je saisie est : insert into `forum` (`validee`) values ('0') |
|
|
00
|
|
|
#8 |
|
Membre expérimenté
![]() Inscription : août 2005 Messages : 515 ![]() |
Oui, sauf que chez FREE, si mes souvenirs sont bons, magic_quotes est sur ON, donc vous devez passer votre requête à stripslashes pour retirer les slashes inutilement ajoutés.
|
|
|
00
|
|
|
#9 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
J'ai modifié le code qui envoit la requête ; maintenant, c'est
Code :
@$result = mysql_query('".stripslashes($sql)."') or die(mysql_error()); |
|
|
00
|
|
|
#10 | ||
|
Membre expérimenté
![]() Inscription : août 2005 Messages : 515 ![]() |
Je viens de faire un test sur l'un des serveurs de FREE. Avec l'ajout de la fonction stripslashes() cela fonctionne parfaitement.
Un exemple : Code :
|
||
|
|
00
|
|
|
#11 |
|
Débutant
Laurent Webmaster Inscription : octobre 2006 Messages : 2 883 ![]() |
Effectivement, avec ce code, ça marche bien : d'abord, ouf ! enfin ! et merci ! Et sinon, pouvez m'expliquer les bugs (que je ne meure pas idiot). En effet, le @ devant $result, je l'ai rajouté en suivant un conseil, et le '".stripslashes($sql)."', je l'avais recopié d'un code existant (sauf qu'au lieu de stripslashes, c'était addslashes), et vu que ça venait d'un site qui tourne bien, je faisais confiance (ça fait moins d'un an que je connais le php, et moins de 2 ans, le html).
|
|
|
00
|
|
|
#12 |
|
Membre expérimenté
![]() Inscription : août 2005 Messages : 515 ![]() |
Vous auriez du écrire ceci :
Code :
@$result = mysql_query(stripslashes($sql)) or die(mysql_error()); Code :
$chaine = 'chaine de caractères '.fonction()." $variable !!!"; Chez FREE, magic_quotes est actif, donc les valeurs des formulaires sont passées automatique à addslashes, mais cela rentre en conflit avec certains traitements. Je pense que vous l'avez constaté. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com