Variable php dans requete sql

Résolu
Helloween77 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   -  
Helloween77 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

4 réponses

Tatanos Messages postés 966 Date d'inscription   Statut Membre Dernière intervention   156
 
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
Helloween77 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour,

Merci mais ça ne marche pas non plus =S
0
yelem Messages postés 74 Date d'inscription   Statut Membre Dernière intervention   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());
?>
0
Helloween77 Messages postés 93 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour, non je n'ai rien oublié il fallait juste écrire le nom de la table en minuscule, merci ;)
0