2010-11-08 5 views
1

Je trouve emballage de base de données simple à http://www.phpclasses.org/browse/file/24355.html mais je ne peux pas récupèrer des lignesMySQL Wrapper et extraction de lignes

<?php 

class DBConnect 
{ 

    static public $HOST; 

    static public $USER; 

    static public $PASS; 

    static public $BASE; 

    static private $LINK = -1; 

    public function Prepare($h,$u,$p,$b) 
    { 

    self::setHost($h); 
    self::setUser($u); 
    self::setPass($p); 
    self::setBase($b); 
    } 

    public function setHost($h) { self::$HOST = $h; } 

    public function setUser($u) { self::$USER = $u; } 

    public function setPass($p) { self::$PASS = $p; } 

    public function setBase($b) { self::$BASE = $b; } 

    private function setLink($l) { self::$LINK = $l; } 

    public function getHost() { return self::$HOST; } 

    public function getUser() { return self::$USER; } 

    public function getPass() { return self::$PASS; } 

    public function getBase() { return self::$BASE; } 


    public function getLink() 
    { 

    if(self::$LINK != -1) 
    { 
     return self::$LINK; 
    } 
    else 
    { 
     try 
     { 
     $link = mysql_connect(self::getHost(),self::getUser(),self::getPass()); 
     self::setLink($link); 
     } 
     catch(Exception $e) 
     { 
     echo "Could not establish a link to the specified database.\n" . $e->getMessage(); 
     self::setLink(-1); 
     } 
     return self::$LINK; 
    } 
    } 


    public function SelectDb($db='') 
    { 

    try 
    { 
     if($db == '') 
     mysql_select_db(self::getBase(),self::getLink()); 
     else 
     mysql_select_db($db,self::getLink()); 
    } 
    catch(Exception $e) 
    { 
     echo "Could not select the specified database '$db'.\n" . $e->getMessage(); 
    } 
    } 

    public function Select($q) 
    { 

    try 
    { 
     $result = mysql_query($q,self::getLink()); 
     if(is_resource($result)) 
     return $result; 
    } 
    catch(Exception $e) 
    { 
     echo "Could not query datasource.\n" . $e->getMessage(); 
    } 
    return 0; 
    } 

    public function Insert($q) 
    { 

    try 
    { 
     mysql_query($q,self::getLink()); 
     return mysql_insert_id(self::getLink()); 
    } 
    catch(Exception $e) 
    { 
     echo "Bad insert: " . $e->getMessage(); 
     return -1; 
    } 
    } 

    public function Update($q) 
    { 

    return mysql_query($q,self::getLink()); 
    } 

    public function Delete($q) 
    { 

    return mysql_query($q,self::getLink()); 
    } 

    public function getRow($r) 
    { 

    if(is_resource($r)) return mysql_fetch_assoc($r); 
    return null; 
    } 

    public function Close() 
    { 

    if(is_resource(self::$LINK)) mysql_close(self::$LINK); 
    } 

    public function Escape($s) 
    { 

    return mysql_real_escape_string($s,self::$LINK); 
    } 

} 

Ci-dessous le code pour les lignes: chercher

INCLUDE 'dbconnect.php';

DBConnect::Prepare("127.0.0.1","myUser","myPass","mySchema"); 

$mysql_result = DBConnect::Select("SELECT * FROM myTable"); 
while($row = DBConnect::getRow($mysql_result)){ 

echo $row[id]; 

} 

Répondre

0

Je ne vois pas pourquoi cela ne marchait pas. La seule chose que je changerais est sur votre echo

 
echo $row[id]; 

to 

echo $row['id']; 

également comme mentionné ci-dessous, vous devez sélectionner la base de données que vous voulez travailler, nous ne sommes pas référenceurs à la table, mais la base de données la table appartient à

Vous devez utiliser:

$db = DBConnect::SelectDb("dbname");
1

vous avez besoin SelectDb premier

+0

Désolé, j'ai oublié: $ mysql_result = DBConnect :: Select ("SELECT * FROM myTable"); – Stipe

+0

je veux dire que ce n'est pas assez pour connecter la base de données, vous devez sélectionner la base de données que vous voulez travailler dessus! –