Bonjour,
Je n'arrive pas à executer une requete préparée avec 2 parametres en placeholder.
Quand j'utilise les parametres "classiques" dans la requete, le résultat est Ok.
Quand j'utilise un seul parametre en placeholder, le résultat est Ok.
Ce qui fonctionne (1 seul parametre en placeholder: $search_data) :
Ce que je n'arrive pas à faire fonctionner (2 parametres en placeholder: $search_field et $search_data ):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #!/usr/bin/perl -w use strict; use DBI; use DBD::mysql; my $dbd = DBI->connect("dbi:mysql:dbname=$db_name;host=$host;mysql_server_prepare=1;",$db_user, $db_pwd) or die 'Connexion impossible à la base de données : '.DBI::errstr; my $req_2 = "SELECT * FROM $table WHERE $search_field=?" ; my $prep_2 = $dbd->prepare($req_2) or die 'Select sur la table: Impossible de préparer la requête : '.$dbd->errstr; $prep_2->execute( $search_data ) or die 'Select sur la table: Impossible d\'exécuter la requête : '.$prep_2->errstr;
Aucune erreur n'est générée mais l'enregistrement cherché n'est pas trouvé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #!/usr/bin/perl -w use strict; use DBI; use DBD::mysql; my $dbd = DBI->connect("dbi:mysql:dbname=$db_name;host=$host;mysql_server_prepare=1;",$db_user, $db_pwd) or die 'Connexion impossible à la base de données : '.DBI::errstr; my $req_2 = "SELECT * FROM $table WHERE ?=?" ; my $prep_2 = $dbd->prepare($req_2) or die 'Select sur la table: Impossible de préparer la requête : '.$dbd->errstr; $prep_2->execute( $search_field, $search_data ) or die 'Select sur la table: Impossible d\'exécuter la requête : '.$prep_2->errstr;
Désolé, c'est certainement une question stupide posée 12000 fois, mais je ne trouve pas la solution.
Merci d'avance de votre aide.
Partager