Variables php dans requête MYSQL

Résolu/Fermé
zikof's - 30 déc. 2008 à 12:39
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 - 30 déc. 2008 à 17:49
Bonjour,

Je cherche à insérer des variables php dans une requête mysql, en local ma base de données est bien alimentée avec les variables mais quand j'utilise mon script avec ma base de données distante ( hébergée chez www.1and1.com ) le serveur MYSQL ne prends pas en charge mes variables il n' y a que des espaces :

$req="insert into `jos_content` (`title`,`introtext`,`catid`,`sectionid`,`created_by`) values ('$satos','addslashes($data)',38,10,62)";
mysql_query($req) or die (mysql_error()) ;

merci de votre aide en avance.
A voir également:

10 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
30 déc. 2008 à 12:43
fait un echo de tes variables pour savoir ce qu'il y a dedans, le problème ne se situe peut-être pas au niveau de la requête.
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
30 déc. 2008 à 12:43
A mon avis tu devrai essayer ça comme ça:
$req='insert into `jos_content` (`title`,`introtext`,`catid`,`sectionid`,`created_by`) values ('$satos','addslashes('.$data.')',38,10,62)'; 
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
30 déc. 2008 à 12:47
encore pire, il y a des erreurs de syntaxes dans la ligne que tu lui donnes.

$req="insert into `jos_content` (`title`,`introtext`,`catid`,`sectionid`,`created_by`) values ('".$satos."','".addslashes($data)."',38,10,62)"; 


essaye avec ça, mais commence par faire un echo des tes variables comme je l'ai dit...
C'est toujours la première démarche à faire quand on a un soucis avec des vaiables, il faut les afficher pour voir si elles contiennent bien ce qu'on veut.
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
30 déc. 2008 à 12:51
Autant pour moi, j'ai pas l'habitude d'utiliser addslashes() du coup j'étais pas trop sur.
0
pour mes variables il n'y a aucune erreur dedans car j'ai essayé avec d'autres variables avec des valeurs aléatoires et ça marche du tt pas, pour ta solution arthezius , elle ne marche pas aussi t merci.
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
30 déc. 2008 à 12:59
Donc quand tu affiche tes variables, y'a aucun souci?

La fin de ta requète serai pas plutôt ça ?
$req='insert into jos_content ("title", "introtext", "catid", "sectionid", "created_by") values ('".$satos."', '".addslashes($data)."', "38", "10", "62")';
0

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

Posez votre question
pour ton code ' ThEBiShOp ', je l'ai essayé dèja et d'ailleurs c'est ce que j'ai utilisé quand j'ai travaillé en local mais snif EN LIGNE elle ne marche pas
0
c'est comme MYSQL intérprète mes variables php en étant des espaces, il n'y a que du vide dans ma base de données pourtant en local ça marche.
merci
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 déc. 2008 à 13:15
Bonjour

d'ou proviennent tes variables ? d'un formulaire en POST

Comment lers récupéres tu ?
exemple:
$data=$_POST['data'];

ou tu utilises directement $data dans ta requette sans l'avoir récupérée du POST ?
0
zikof's > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
30 déc. 2008 à 13:24
ben mes variables sont de types string, de simples variables contenant des caractères et elles ne sont pas issues d'une formulaire.

$data="gllhghffddf"; par ex

merci
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > zikof's
30 déc. 2008 à 13:33
Alors essayes avec cette forme de req

tu as mélangé les " et les ' et il ne faut pas de " pour les noms de champ

$req="INSERT INTO jos_content (title, introtext, catid, sectionid, created_by) VALUES ('".$satos."', '".addslashes($data)."', '38', '10', '62')";
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
30 déc. 2008 à 14:10
les valeur numérique n'ont pas besoin d'être "quotés" et un double ou simple quote ne change strictement rien.

Est-ce que tu peux faire ce que je t'ai conseillé dès le début...
faut commencer par le commencement des fois.

Au lieu d'écrire

$req="insert into `jos_content` (`title`,`introtext`,`catid`,`sectionid`,`created_by`) values ('".$satos."','".addslashes($data)."',38,10,62)"; 


ecrit :

echo $req="insert into `jos_content` (`title`,`introtext`,`catid`,`sectionid`,`created_by`) values ('".$satos."','".addslashes($data)."',38,10,62)"; 


Tu obtiens quoi ?
0
ça me donne :

insert into `jos_content` (`title`,`introtext`,`catid`,`sectionid`,`created_by`) values ('','',38,10,62)

je sais pourquio il intérprète les variables php comme des espaces.

merci
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
30 déc. 2008 à 16:26
et côté serveur en ligne, ta base de donnée à bien la même structure que celle en local?? Car l'ordre des champs a une grande importance!
0
oui c'est la meme structure, mais j'ai trouvé l'erreur juste pour la variable $satos, dèja c'est $sato c'est pour ça insérait le vide mais pour la variable $data j'ai essayé de l'affiché seule mais il ne retourne rien.
NB: $data contient du texte et s'insère dans un champs mediumtext (introtext)
merci.
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
30 déc. 2008 à 16:42
c'est bien ce que je disais, le problème ne vient pas de la requête.

D'où viennent tes variables ?
0
- mes variables plutot la variable $data est une extraction du contenu d'un fichier html.

j'ai fait :

echo strlen($data);

en local ça me rend 448466 et en ligne ça retourne 0,c'est comme il prend pas en charge les fonctions que j'ai utilisé pour faire l'extraction.

merci.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > zikof's
30 déc. 2008 à 17:17
- mes variables plutot la variable $data est une extraction du contenu d'un fichier html.

questions idiotes :

- ton fichier HTML tu l'as bien chargé sur le serveur, et dans le même répertoire que en local ?

- as tu les droits pour le lire ?

- en local tu bosses avec EasyPhp ou Wamp ? c a d windows

- en distant Linux ?
0
zikof's > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
30 déc. 2008 à 17:30
merci les gas j'ai pu arriver à trouver la solution, j'ai télecharger e fichier php.ini du serveur et je l'ai vérifié, j'ai activer la fonction display_errors et puis le serveur m'a retourné que le fichier cité n'est pas le meme qui est uploder , j'ai remis tout en ordre et c'est fait .
merci pour vos réponses.
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
30 déc. 2008 à 17:49
coche la case "résolu" ;)
0