Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PEAR > DB & MDB2
DB & MDB2 Forum d'entraide pour les bibliothèques DB et MDB2 du framework PEAR, permettant de manipuler les bases de données en PHP. Avant de poster -> tutoriels DB et MDB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/05/2006, 09h10   #1
Membre du Club
 
Inscription : janvier 2005
Messages : 231
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 231
Points : 40
Points : 40
Envoyer un message via Yahoo à manaboko
Par défaut [DB] requête dans une base

Bonjour à tous, j'essaye d'utiliser PEAR dans mes pages et j'ai un problème avec le code suivant

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
set_include_path(get_include_path() . ";D:\Program Files\EasyPHP1-7\php\PEAR");
$user = 'root';
$passwd = '';
$mysqlServer = 'localhost';
$dataBaseName ='example';
require_once 'DB.php';
$dsn ='mysql://'.$user.':'.$passwd.'@'.$mysqlServer.'/'.$dataBaseName;
$db =& DB::connect($dsn);
 
if (PEAR::isError($db)) {
    die($db->getMessage());
}
else
    echo 'connecté';
 
$stmt = 'select * from authentification where login='.$login.' and psw='.md5($psw);
$res = DB_common::query($stmt);
echo $res->numRows();
// Always check that result is not an error
if (PEAR::isError($res)) {
    die($res->getMessage());
}

Et voici l'erreur :
Citation:
connecté
Fatal error: Call to undefined function: simplequery() in D:\Program Files\EasyPHP1-7\php\pear\DB\common.php on line 1161


Est-ce que quelqu'un peut m'aider?

Merci beaucoup.
manaboko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2006, 10h10   #2
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
Salut,

vu que tu as créé une instance de DB, pourquoi n'utilises-tu pas cet objet pour lancer tes requêtes?

Remplace:
Code :
1
2
 
$res = DB_common::query($stmt);
par

Code :
1
2
 
$res = $db->query($stmt);
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2006, 10h56   #3
Membre du Club
 
Inscription : janvier 2005
Messages : 231
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 231
Points : 40
Points : 40
Envoyer un message via Yahoo à manaboko
j'ai remplacé le code et ça marche . Merci beaucoup.

Mais j'ai un autre problème , faut-il toujours se connecter à la base et créer une instance de $db pour executer une requete?
Pour mieux expliquer, voici mon exemple:
si j'utilise le code suivant dans index.php, il n'y a pas d'erreur
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
        set_include_path(get_include_path() . ";D:\Program Files\EasyPHP1-7\php\PEAR");
        $user = 'root';
        $passwd = '';
        $mysqlServer = 'localhost';
        $dataBaseName ='example';
        require_once 'DB.php';
        $dsn ='mysql://'.$user.':'.$passwd.'@'.$mysqlServer.'/'.$dataBaseName;
        $db =& DB::connect($dsn);
        if (DB::isError($db)) {
        die($db->getMessage());}
 
        $stmt = 'select * from authentification where login='."'".$login."'".' and psw='."'".md5($psw)."'";
        $res = $db -> query($stmt);
        // Always check that result is not an error
        while ($res->fetchInto($row)) {
            // En supposant que le mode par défaut de DB est DB_FETCHMODE_ORDERED
            echo $row[0] . "\n";
        }
        if (PEAR::isError($res)) {
            die($res->getMessage());
        }
Par contre, si je sépare la page de connexion et la page de requete , il y a une erreur.
Voici la page connexion.php
Code :
1
2
3
4
5
6
7
8
9
10
11
 
    set_include_path(get_include_path() . ";D:\Program Files\EasyPHP1-7\php\PEAR");
    $user = 'root';
    $passwd = '';
    $mysqlServer = 'localhost';
    $dataBaseName ='example';
    require_once 'DB.php';
    $dsn ='mysql://'.$user.':'.$passwd.'@'.$mysqlServer.'/'.$dataBaseName;
    $db =& DB::connect($dsn);
    if (DB::isError($db)) {
        die($db->getMessage());}
et voici index.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
        require('configs/connexion.php');
        $stmt = 'select * from authentification where login='."'".$login."'".' and psw='."'".md5($psw)."'";
        $res = $db -> query($stmt);
        // Always check that result is not an error
        while ($res->fetchInto($row)) {
            // En supposant que le mode par défaut de DB est DB_FETCHMODE_ORDERED
            echo $row[0] . "\n";
        }
        if (PEAR::isError($res)) {
            die($res->getMessage());
        }
et voici l'erreur généré
Citation:
Fatal error: Call to a member function on a non-object in d:\program files\easyphp1-7\www\example\classe\authentification.php
manaboko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2006, 11h15   #4
Membre expérimenté
 
Développeur Web
Inscription : avril 2006
Messages : 430
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2006
Messages : 430
Points : 538
Points : 538
mais l'erreur se situe ailleurs là, non?

>> authentification.php
bkill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2006, 13h06   #5
Membre du Club
 
Inscription : janvier 2005
Messages : 231
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 231
Points : 40
Points : 40
Envoyer un message via Yahoo à manaboko
ah excuses-moi, la page s'appelle authentification.php mais pas index.php
manaboko est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h54.


 
 
 
 
Partenaires

Hébergement Web