Vous n'êtes pas identifié(e).
Pages :: 1
Bonsoir à tous,
C'est mon premier post, je m'excuse d'avance.
Mon problème : je prépare une requête paramétrée, elle ne marche pas alors je mets tout à plat, j'écris tout en 4 lignes, la non paramètrée MARCHE l'autre, non, malgré toutes mes lectures et toutes les tentatives rationnelles (ou pas)
Mon problème en code, avant d'y passer la nuit ! (je suis sur OVH)
$table = ‘membres’ ;
$invite= ‘XXX’ ;
$query = 'SELECT concat(nom," __ ",prenom) FROM '.$table.' WHERE (nom = "XXX") ' ; // elle marche
$query = 'SELECT concat(nom," __ ",prenom) FROM '.$table.' WHERE nom = ".$invite." ' ; // ne marche pas dans le même contexte (substitution )
$result =mysql_query($query) or die ("Erreur B2) ;
/* - liste des mauvais (pas de blocage de syntaxe mais erreur « or die »
1- WHERE (nom = '.$invite.' ) ' ;
2- WHERE nom = '.$invite.' ' ;
- liste des bons (passe le or die) mais ne lit pas la base
WHERE nom = ".$invite." ' ; */
Il va sans dire mon niveau, mais faut bien commencer !
Merci d'avance.
Hors ligne
Tu mélanges des simples quotes avec des doubles, c'est pour cela que tu n'obtiens rien. ^^
Avec ceci cela devrait passer.
Hors ligne
Saluton,
Déception, à la lecture du titre du post je m'attendais à une question afférente aux requêtes paramétrées sous PDO.
Ici, je ne saurais que conseiller aux débutant d'étudier la fonction sprintf() qui devrait grandement leur faciliter la vie..... avant de se mettre à PDO (de toutes façons).
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour à tous,
Merci GrandGourou d'être passé me voir, mais quand tout va mal... J'ai découvert l'usage et l'intérêt de mysql_real_escape_string mais ça ne marche toujours pas ! Je mets plus de code , dont la correction proposée en la généralisant à $table (les essais avec, sans et autres combinaisons ne m'ont rien donné.) pour éventuellement mieux montrer le problème.
Cette fois j'ai fait un copier/ coller par prudence.
C'est avec espoir que je vous resollicite, J'ai vu beaucoup de warning et de Erreur B2, c'est le cas de ce code, cette nuit !
Hors ligne
Hum oui le soucis doit venir du fait que nom est en varchar. Une erreur de débutant de ma part, il faut donc l'insérer avec des simples quotes.
Sinon pour nous diriger dans nos recherches il serait intéressant de nous retourner lors d'erreurs sql :
mysql_error()
On pourra placer cette fonction dans le die() du mysql_query() sur le serveur de développement.
Hors ligne
Salut,
pour faire plaisir a MK
avec pdo :
ce n'est pas parce que l'on est débutant qu'il faut employer des méthodes obsolètes
$connexion= new PDO(...);
$query = "SELECT concat(nom,'__ ',prenom) as nom_prenom FROM :table WHERE nom = :nom" ;
$res = $connexion->prepare($query);
$res->bindparam(':nom',$nom);
$res->bindparam(':table',$table);
$nom = "une valeur";
$table = "le nom de la table";
$res->execute();
$row = $res->fetch(PDO::FETCH_OBJ);
echo $row->nom_prenom ;
a++
Hors ligne
Il y a encore beaucoup de subtilités qui m'échappent (pourquoi pas de cote à $table alors qu'il en faut à $invite ?) mais un grand merci GrandGourou, ces simples cotes m'ont sauvées mon WE ! (
Merci aussi aux conseils pour passer à PDO.... j'y viendrai mais quand on démarre faut bien faire avec ce qu'on a !
Je ne vois rien à cocher pour signaler le problème résolu !
Hors ligne
>>j'y viendrai mais quand on démarre faut bien faire avec ce qu'on a !
je crois que tu n'as pas bien compriss
ou tu ne sais pas lire ??? !!!
a++
Hors ligne
La syntaxe la plus correcte qui soit serait en fait :
En gros :
` pour protéger les noms de structures (table, attribut)
' pour entourer la valeur d'un champs qui n'est pas numérique
En espérant que cela réponde à ta question.
Hors ligne
Pour Pierrot : si si j'ai bien compris et tes propos "ce n'est pas parce que l'on est débutant qu'il faut employer des méthodes obsolètes" sont très positifs, en plus accompagné du code que j'ai précieusement classé.
J'ai aussi suivi le lien de MK et les liens qui suivent pour taper PDO sur OVH : pas de réponse... PDO est donc pour moi, grand débutant, une solution certes mais pour un prochain projet; Celui-ci va déboucher, il me fera plaisir et qui plus est , il est attendu.
C'est donc un question de délai et nous en sommes tous là...
Merci quand même et A+
Hors ligne
Pages :: 1