Bonsoir,
Mon problème est le suivant :
J'ai un fichier de fonctions qui nécessitent une connexion a une BD, donc ayant développé un fichier externe de configuration de connexion, je veux l'utiliser, cependant la variable ne peut 'rentrer' dans les fonctions.
Pour être plus clair voici les codes :
fichier de connexion BD : configSQL :
Je précise que dans d'autres fichiers (sans fonctions), ce fichier marche très bien, je réutilise la variable $dbh.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php define('USER', 'root'); define('PASS',''); define('DSN','mysql:host=localhost;dbname=cid'); try { global $dbh; $dbh = new PDO(DSN, USER, PASS); } catch (PDOException $e) { print "Erreur ! : " . $e->getMessage(). "<br/>"; die(); } ?>
Fichier de fonctions :
L'erreur génére me dit que la variable $dbh n'est pas déclaré, une solution est de mettre le include à l'intérieur de la fonction, ce qui fonctionne, mais si je fais pareil pour la deuxième fonction, cela ne marche plus car si j'ai déja appelé la première fonction, le $dbh est déja défini et dans l'autre sens..Vous voyez le problème?? N'hésitez a me poser des question pour des précisions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <?php include_once('configSQL.php'); function getPassword($utilisateur) { $uid = addslashes($utilisateur); $requete = "SELECT password FROM utilisateurs WHERE uid='$uid'"; $sth = $dbh->query($requete); $result = $sth->fetchAll(PDO::FETCH_ASSOC); if($result==null) { return false;} else { foreach($result as $row) { return $row['password'];} } } function setPassword($utilisateur, $pass) { $uid = addslashes( $utilisateur ); $pass = addslashes( $pass ); $requete = "INSERT INTO utilisateurs (uid, password) VALUES ('$uid' ,'$pass')"; $dbh->exec($requete); } ?>
Si quelqu'un à une idée ou une solution, merci d'avance.
Partager