Requete msql

Résolu/Fermé
colas31 Messages postés 135 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 21 décembre 2010 - 1 avril 2008 à 15:54
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 - 2 avril 2008 à 11:30
Bonjour,

J'ai un soucis avec ma base de donné.

Avec mon hebergeur je fait une requete insert qui me retourne une 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 'text-align:center;'> .......
ca doit venir des guillemet.

Je fais d'autres teste de mon pc je tente de faire cette même requete vers la base de donné et la no probleme.
Je reaissais d'un autre hebergeur vers cette même base de donné qui pose probleme et la idem tout marche.

Cette erreur ne se produit que si le requete est faites à partir cet hebergeur ?
D'ou peut venir le probleme merci

17 réponses

beautytale Messages postés 10 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 1 avril 2008
1 avril 2008 à 15:59
Bjr,

Qui est ton hébergeur ?
0
colas31 Messages postés 135 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 21 décembre 2010 21
1 avril 2008 à 16:01
Pourquoi ca changerai beaucoup de chose ?? C'est hostheberge.
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
1 avril 2008 à 16:05
Ton pb vient probablement des "magic_quotes" : c'est une option de ton serveur PHP qui doit être positionnée différemment sur tes deux serveurs.

As-tu affiché ta requête avant d'appeler mysql_query ?

Ajoute avant l'appel de mysql_query :
echo '<br>...' . get_magic_quotes_gpc() . '...'  . $query;

(dans la mesure où ta requête est dans $query)

Qu'est-ce-que ça affiche sur ton serveur local et sur ton serveur distant ?
0
colas31 Messages postés 135 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 21 décembre 2010 21
1 avril 2008 à 16:10
En local j'ai ...0... et a distance j'ai ...1...

Merci ca signifie quoi ? faut que je modifie ma requete pour inserer ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
1 avril 2008 à 16:19
Il faudrait aussi que tu fasses un echo de ta requête (echo $query)
0
colas31 Messages postés 135 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 21 décembre 2010 21
1 avril 2008 à 16:24
ha d'accord pardon :

a distance : ...1...INSERT INTO commentaire VALUES ('12','tata','','
toto
','01/04/2008','16:21')

la il me marque une erreur d'en tete qu'elle est deja envoyé je pense que c'es normal

en local : ...0...INSERT INTO commentaire VALUES ('13','tata','','
message
','01/04/2008','16:18')

et la il me marque erreur que j'ai une erreur dans la syntaxe : .. MySQL server version for the right syntax to use near 'text-align:center;'>message','01/04/2008','16:18')' at line 1

Comme tu peux la voir en faite je veux centrer le texte message grace au bbcode.

merci
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
1 avril 2008 à 16:42
Pourrais-tu envoyer ton code entre élaboration de la requête et l'appel de mysql_query qui produit l'erreur.
0
colas31 Messages postés 135 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 21 décembre 2010 21
1 avril 2008 à 16:44
$insertion = "INSERT INTO commentaire VALUES ('$id','$nom','$mail','$texte','$date','$heure')";

echo '<br>...' . get_magic_quotes_gpc() . '...' . $insertion;

mysql_query($insertion) or die('Insertion impossible. Erreur SQL ! : '.$insertion.'<br>'.mysql_error());

Voila
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
1 avril 2008 à 16:55
Il y a qqch d'important : pourrais-tu m'envoyer plus de code, en particulier depuis ce qui génère le text-align.
0
colas31 Messages postés 135 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 21 décembre 2010 21
1 avril 2008 à 17:00
Oula ca va être compliqué car la variable texte provient d'un javascript qui modifie tout.

Par contre juste au début j'ai ceci

$modif = array("\'" => "''", '\"' => '"');
$texte = strtr($texte,$modif);

Je sais pas si ca peut t'aider mais pour mieu comprendre voila l'adresse ou il y a un beug : colas.hostheberge.net/add.php
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
2 avril 2008 à 09:34
L'adresse indiquée ne montre pas d'erreur ?????

Il est nécessaire que tu communiques le source complet.

Javascript ne devrait pas intervenir car il est exécuté par le navigateur APRES l'exécution php sur le serveur et donc APRES que mysql ait été appelé.
0
colas31 Messages postés 135 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 21 décembre 2010 21
2 avril 2008 à 10:00
ALors en fait, c'est à partir de cet page que l'erreur va être générer, il faut écrire un message, cliquer par example sur le bbcode pour le centrer et faire submit.

Et la la prochaine page qui s'ouvre c'est sur celle ci que l'erreur apparait.

Voila les coude source inmportant.
page ou il y lespace commentaire :
<form name="news" method="post" action="./traitement-com.php">
..... mise en forme
<textarea name="newst" id="newst" rows="10" wrap="soft" cols="45"></textarea>
<input type="button" id="champ" value="Submit" onclick="visualisation('submit')">
la derniere ligne va mettre en forme le texte grace à un script javascript pr le rendre fonctionnel en html.

voila le code sur ma page ou il y a l'erreur :
$texte = $_POST['newst'];
$modif = array("\'" => "''", '\"' => '"');
$texte = strtr($texte,$modif);

$insertion = "INSERT INTO commentaire VALUES ('$id','$nom','$mail','$texte','$date','$heure')";

echo '<br>...' . get_magic_quotes_gpc() . '...' . $insertion;
mysql_query($insertion) or die('Insertion impossible. Erreur SQL ! : '.$insertion.'<br>'.mysql_error());
mysql_free_result($result);


Voila. J'espere que ca te convient ? est ce tu tu veux autres chose ou cela suffira ?
Merci encore
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
2 avril 2008 à 10:09
Essaye qqch comme :

$texte = $_POST[ 'newst' ];
echo '<br>...texte brut : ' . $texte;
if( ! get_magic_quotes_gpc() )
	$texte = mysql_escape_string( $texte );


à la place de :

$texte = $_POST['newst'];
$modif = array("\'" => "''", '\"' => '"');
$texte = strtr($texte,$modif);


Qu'est-ce que ça donne ?
0
colas31 Messages postés 135 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 21 décembre 2010 21
2 avril 2008 à 10:20
C'est bon !!!!

Merci beaucou^p pour votre aide et votre patience.
et cet ligne sert à quoi : $texte = mysql_escape_string( $texte ); ??

Merci
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
2 avril 2008 à 10:36
Elle "Protège une chaîne pour la passer à mysql_query" : lit la doc php pour plus de détail.
0
colas31 Messages postés 135 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 21 décembre 2010 21
2 avril 2008 à 10:41
Merci encore pour ton aide. Bonne continuation ^^
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
2 avril 2008 à 11:30
N'oublie pas de clore cette discussion.
0