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 :
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();
}
?>
Je précise que dans d'autres fichiers (sans fonctions), ce fichier marche très bien, je réutilise la variable $dbh.
Fichier de fonctions :
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);
}
?>
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.
Si quelqu'un à une idée ou une solution, merci d'avance.