par
Invité » 04 mai 2007, 14:00
Bonjour,
j'ai un fichier config.php dans lequel je crée une connexion à une bdd. Ce fichier est disponible pour toutes les pages de mon site en include.
$dsn = array(
'phptype' => 'mysql',
'username' => 'admin',
'password' => 'motdepasse',
'hostspec' => 'localhost',
'database' => 'mabdd',
);
$options = array(
'debug' => 2,
'portability' => DB_PORTABILITY_ALL,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
die($db->getMessage());
}
Dans un fichier fonctions.php, j'ai une fonction qui execute une requete sur la bdd, à partir de la connexion ci dessus. ce fichier est disponible pour toutes les pages de mon site en include.
function checkPass($values)
{
$sql = "SELECT idAdmin, mdpAdmin FROM login WHERE idAdmin = '?' and mdpAdmin = '?'";
$data = array($values['idAdmin'], $values['mdpAdmin']);
if ($res =& $db->query($sql, $data))
{
js_redirect("index.php");
}
else
{
js_redirect("admin.php");
}
}
Mon problème : l'instance de connexion $db qui a été créée dans config.php ( $db =& DB::connect($dsn, $options); ) n'est pas disponible dans ma fonction checkPass($values).
Si je suis dans une page quelconque de mon site et que je fais
checkpass($values), je reçois une erreur me disant que $db n'existe pas.
Comment rendre $db disponible pour toutes mes fonctions, dans devoir faire ceci à chaque fois :
checkPass($values, $db).
Merci pour vos réponses.
Bonjour,
j'ai un fichier config.php dans lequel je crée une connexion à une bdd. Ce fichier est disponible pour toutes les pages de mon site en include.
[php]
$dsn = array(
'phptype' => 'mysql',
'username' => 'admin',
'password' => 'motdepasse',
'hostspec' => 'localhost',
'database' => 'mabdd',
);
$options = array(
'debug' => 2,
'portability' => DB_PORTABILITY_ALL,
);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
die($db->getMessage());
}
[/php]
Dans un fichier fonctions.php, j'ai une fonction qui execute une requete sur la bdd, à partir de la connexion ci dessus. ce fichier est disponible pour toutes les pages de mon site en include.
[php]
function checkPass($values)
{
$sql = "SELECT idAdmin, mdpAdmin FROM login WHERE idAdmin = '?' and mdpAdmin = '?'";
$data = array($values['idAdmin'], $values['mdpAdmin']);
if ($res =& $db->query($sql, $data))
{
js_redirect("index.php");
}
else
{
js_redirect("admin.php");
}
}
[/php]
Mon problème : l'instance de connexion $db qui a été créée dans config.php ( $db =& DB::connect($dsn, $options); ) n'est pas disponible dans ma fonction checkPass($values).
Si je suis dans une page quelconque de mon site et que je fais
checkpass($values), je reçois une erreur me disant que $db n'existe pas.
Comment rendre $db disponible pour toutes mes fonctions, dans devoir faire ceci à chaque fois :
checkPass($values, $db).
Merci pour vos réponses.