Variable php dans requete sql
Résolu/Fermé
Helloween77
Messages postés
93
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mai 2015
-
Modifié par Helloween77 le 1/03/2012 à 15:22
Helloween77 Messages postés 93 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mai 2015 - 7 mars 2012 à 14:07
Helloween77 Messages postés 93 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mai 2015 - 7 mars 2012 à 14:07
Bonjour,
La requête suivante marche impec quand je test en local, elle me retourne bien ce que je lui demande... Mais une fois mise en ligne la requête ne s'exécute pas correctement ("erreur"). J'en déduis que ça doit être à cause de la variable $pseudo mais j'ai essayé différentes syntaxes et ça ne marche toujours pas :
$pseudo=$_SESSION['pseudo'];
$result=mysql_query("SELECT id,titre FROM FICHES F WHERE F.pseudo= '$pseudo' ORDER BY id desc LIMIT 0,200") or die ('erreur');
Ca fait longtemps que je cherche mais rien à faire, merci d'avance à ceux qui pourrons m'éclairer.
La requête suivante marche impec quand je test en local, elle me retourne bien ce que je lui demande... Mais une fois mise en ligne la requête ne s'exécute pas correctement ("erreur"). J'en déduis que ça doit être à cause de la variable $pseudo mais j'ai essayé différentes syntaxes et ça ne marche toujours pas :
$pseudo=$_SESSION['pseudo'];
$result=mysql_query("SELECT id,titre FROM FICHES F WHERE F.pseudo= '$pseudo' ORDER BY id desc LIMIT 0,200") or die ('erreur');
Ca fait longtemps que je cherche mais rien à faire, merci d'avance à ceux qui pourrons m'éclairer.
A voir également:
- Variable php dans requete sql
- Easy php - Télécharger - Divers Web & Internet
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Requete sql pix - Forum PHP
- Logiciel sql - Télécharger - Bases de données
4 réponses
Tatanos
Messages postés
966
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
26 mai 2016
156
1 mars 2012 à 15:31
1 mars 2012 à 15:31
Bonjour :)
$result=mysql_query("SELECT id,titre FROM FICHES F WHERE F.pseudo= ' " . $pseudo . " ' ORDER BY id desc LIMIT 0,200") or die ('erreur');
J'ai volontairement mi plein d'espaces pour qu'on distingue bien les " et les '
$result=mysql_query("SELECT id,titre FROM FICHES F WHERE F.pseudo= ' " . $pseudo . " ' ORDER BY id desc LIMIT 0,200") or die ('erreur');
J'ai volontairement mi plein d'espaces pour qu'on distingue bien les " et les '
Helloween77
Messages postés
93
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mai 2015
1
1 mars 2012 à 16:54
1 mars 2012 à 16:54
Bonjour,
Merci mais ça ne marche pas non plus =S
Merci mais ça ne marche pas non plus =S
yelem
Messages postés
74
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
3 juin 2014
23
1 mars 2012 à 18:24
1 mars 2012 à 18:24
Bonjour,
Bon tout d'abord, tu as oublié de mettre '. .' autour de ta variable pour qu'elle puisse être reconnue en tant que telle.
Ensuite, as tu essayé avec une requête préparée ?? En général il est grandement conseillé d'éviter de concaténer une variable dans une requête pour des raisons de sécurités évidentes (injection SQL) mais aussi (plus rare) pour des problèmes de compatibilité.
Ecrit plutôt quelque chose du genre :
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
$req = $bdd->prepare("SELECT id, titre FROM FICHES WHERE F.pseudo = ? ORDER BY id desc LIMIT 0,200");
$req->execute(array($pseudo']));
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
?>
Bon tout d'abord, tu as oublié de mettre '. .' autour de ta variable pour qu'elle puisse être reconnue en tant que telle.
Ensuite, as tu essayé avec une requête préparée ?? En général il est grandement conseillé d'éviter de concaténer une variable dans une requête pour des raisons de sécurités évidentes (injection SQL) mais aussi (plus rare) pour des problèmes de compatibilité.
Ecrit plutôt quelque chose du genre :
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
$req = $bdd->prepare("SELECT id, titre FROM FICHES WHERE F.pseudo = ? ORDER BY id desc LIMIT 0,200");
$req->execute(array($pseudo']));
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
?>
Helloween77
Messages postés
93
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mai 2015
1
7 mars 2012 à 14:07
7 mars 2012 à 14:07
Bonjour, non je n'ai rien oublié il fallait juste écrire le nom de la table en minuscule, merci ;)