Variables php dans requête MYSQL [Résolu/Fermé]

Signaler
-
Messages postés
8319
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
-
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.

10 réponses

Messages postés
8319
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
1 321
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.
Messages postés
3549
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
446
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)'; 
Messages postés
8319
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
1 321
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.
Messages postés
3549
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
446
Autant pour moi, j'ai pas l'habitude d'utiliser addslashes() du coup j'étais pas trop sur.
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.
Messages postés
3549
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
446
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")';
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
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
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873
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 ?
>
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017

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
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873 > zikof's
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')";
Messages postés
8319
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
1 321
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 ?
ç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
Messages postés
537
Date d'inscription
samedi 13 septembre 2008
Statut
Membre
Dernière intervention
29 novembre 2012
62
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!
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.
Messages postés
8319
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
1 321
c'est bien ce que je disais, le problème ne vient pas de la requête.

D'où viennent tes variables ?
- 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.
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
873 > zikof's
- 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 ?
>
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017

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.
Messages postés
8319
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
18 juillet 2018
1 321
coche la case "résolu" ;)