PEAR MDB2... Un brin complexe !

Didjo

Membre actif
9 Novembre 2003
967
85
Paris
Bonjour !

Je me suis enfin décider à ne pas réinventer la roue et à utiliser PEAR MDB2 pour me connecter à ma base de données (mysql).
Sauf que la librairie est un brin complexe, et en tout cas, ne fait pas ce que je veux !

Ainsi, une simple (?), $db->query m'affiche tout un tas de tableau...

inc/mdb2.class.php
Bloc de code:
if ($_SERVER['SERVER_NAME'] == "localhost") {
    set_include_path(get_include_path().":/Applications/MAMP/bin/php5/lib/php/PEAR");
    require 'MDB2.php';
    $dsn = array(
        'phptype'  => 'mysql',
        'username' => 'root',
        'password' => 'localpass',
        'hostspec' => 'localhost',
        'database' => 'nom-de-la-table'
    );
    //$options = array('debug' => 2, 'portability' => MDB2_PORTABILITY_ALL);
} else {
    #
}
//init-connect='SET NAMES utf8' //mysql_query("SET NAMES 'utf8'");
$db = MDB2::connect($dsn);
if (PEAR::isError($db))
    die("Une erreur est survenue.<br />".$db->getMessage()."<br />".$db->getUserInfo()."<br />".$db->getDebugInfo()."<br />");
$db->setFetchMode(MDB2_FETCHMODE_ASSOC);
Ainsi, ceci
Bloc de code:
require "";
$result = $db->query("SELECT * from products");
print_r($result);
$db->disconnect();

Affiche cela
MDB2_BufferedResult_mysql Object ( [db] => MDB2_Driver_mysql Object ( [string_quoting] => Array ( [start] => ' [end] => ' [escape] => \ [escape_pattern] => \ ) [identifier_quoting] => Array ( [start] => ` [end] => ` [escape] => ` ) [sql_comments] => Array
[...]
[_default_error_handler] => [_error_class] => PEAR_Error [_expected_errors] => Array ( ) ) [result] => Resource id #11 [rownum] => -1 [types] => Array ( ) [values] => Array ( ) [offset] => 0 [offset_count] => 0 [limit] => 0 [column_names] => )

Pourtant il me semble avoir bien suivit tout ce que les tutoriaux trouvés indiquent !

Qu'ais je mal fait ?

Merci de votre aide :zen:
 
pour ma part j'utilise ceci


//Fichier de Configuration des bases de donnees
require_once '/usr/share/php/PEAR/MDB2.php';
//Parametres des bases de donnees
//Options
array('portability' => (MDB2_PORTABILITY_ALL ^
MDB2_PORTABILITY_EMPTY_TO_NULL)
);
//bases de donnees
$dsn_mabase = array(
'phptype' => 'mysql',
'username' => 'xxxxx',
'password' => 'xxxxx',
'hostspec' => 'xxxxxxx',
'database' => 'mabase',
);




Pour sélectionner et afficher des row par exemple :

/Connexion e la base de donnees
$db_mabase =& MDB2::factory($dsn_mabase);

$query =& $db_mabase->query("SELECT * FROM matable");

while($row = $query->fetchRow(MDB2_FETCHMODE_ASSOC)){

$id = $row[id];
$shop = $row[shop];

echo "$shop : $id <br />";
}
 
Merci de ta réponse !

Finalement j'ai opté pour ma bonne vieille fonction db() écrite à la mano... Et visiblement elle prend moins de place que e que tu me propose :D

Merci encore :)