Variable php dans requete sql [Résolu/Fermé]

Signaler
Messages postés
93
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mai 2015
-
Messages postés
93
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mai 2015
-
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.

4 réponses

Messages postés
993
Date d'inscription
lundi 24 mars 2008
Statut
Membre
Dernière intervention
26 mai 2016
128
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 '
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60414 internautes nous ont dit merci ce mois-ci

Messages postés
93
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mai 2015
1
Bonjour,

Merci mais ça ne marche pas non plus =S
Messages postés
77
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
3 juin 2014
23
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());
?>
Messages postés
93
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mai 2015
1
Bonjour, non je n'ai rien oublié il fallait juste écrire le nom de la table en minuscule, merci ;)