Bonjour, je demande votre aide aujourd'hui car j'ai eu un problème avec une de mes fonctions la voici :

function recherchebdd($ressource){
    $req_rech = $bdd->prepare("SELECT * FROM resources WHERE resource = ?");
    $req_rech->execute(array($ressource));
    $req_result = $req_rech->fetch();
    echo $req_result['price'];

et quand j'appele ma fonction

recherchebdd('oilp');

resultat ma page fait des caprices et par dans tous les sens

merci de votre aide, cordialement

3 réponses


Bonjour,
Qu'entends tu par "ma page fait des caprices et par dans tous les sens" ? (quels sont les messages d'erreurs)
Que donne un var_dump($req_result) ?
D'où sors la variable $bdd de ta fonction ?
ps : dans ta requête, si tu mets WHERE resource = %?% cela serait peut être plus "global" comme recherche

Bonjour c'est normal que tu as une erreur tu as oublié de présisé que la varible $bdd est une instance de la class PDO, si tu l'as déclaré au paravant hors fonction tu devra le passer en paramètre, voici le code :

function recherchebdd(PDO $bdd, $ressource)
{
    $req_rech = $bdd->prepare("SELECT * FROM resources WHERE resource = ?");
    $req_rech->execute(array($ressource));
    $req_result = $req_rech->fetch();
    echo $req_result['price'];
}

Et quant tu appèle ta fonction :

$bdd = new PDO("mysql:dbname=nom_de_ta_bdd;host=127.0.0.1;charset=utf8", DB_USER, DB_PASSWORD,array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
recherchebdd($bdd, 'oilp');

Ajoute ceci dans ta fonction :

global $bdd;