Requete msql

Résolu
colas31 Messages postés 135 Date d'inscription   Statut Membre Dernière intervention   -  
croy Messages postés 453 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention  
 
Bjr,

Qui est ton hébergeur ?
0
colas31 Messages postés 135 Date d'inscription   Statut Membre Dernière intervention   21
 
Pourquoi ca changerai beaucoup de chose ?? C'est hostheberge.
0
croy Messages postés 453 Date d'inscription   Statut Membre Dernière intervention   114
 
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   Statut Membre Dernière intervention   21
 
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   Statut Membre Dernière intervention   114
 
Il faudrait aussi que tu fasses un echo de ta requête (echo $query)
0
colas31 Messages postés 135 Date d'inscription   Statut Membre Dernière intervention   21
 
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   Statut Membre Dernière intervention   114
 
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   Statut Membre Dernière intervention   21
 
$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   Statut Membre Dernière intervention   114
 
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   Statut Membre Dernière intervention   21
 
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   Statut Membre Dernière intervention   114
 
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   Statut Membre Dernière intervention   21
 
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   Statut Membre Dernière intervention   114
 
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   Statut Membre Dernière intervention   21
 
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   Statut Membre Dernière intervention   114
 
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   Statut Membre Dernière intervention   21
 
Merci encore pour ton aide. Bonne continuation ^^
0
croy Messages postés 453 Date d'inscription   Statut Membre Dernière intervention   114
 
N'oublie pas de clore cette discussion.
0