webForumDet fria alternativet

DB Mysqli class vad är fel?

2 svar · 819 visningar · startad av Jester73

Jester73Medlem sedan mars 2012121 inlägg
#1

Hej

Hittar inte felet i denna class. Får reda på antal rader i funktionen dbselect och den hoppar till rätt if men får inget tillbaka efter det. :(

class database {
    static $connect=FALSE;
    
    function __construct() {
        
        if(self::$connect===FALSE){
            self::$connect=new mysqli(DBHOST,DBUSER,DBPASSW,DBASE)or die("Kan inte ansluta");
            
        }
        
        if(self::$connect->connect_error){
            die("Får ej kontakt med databasen");
                
        }
                
}
    function dbselect($sql){ //Get multiple row of data
        if(!$res=self::$connect->query($sql)){
            die('There was an error running that query ' . self::$connect->error . '-' . self::$connect->errno);
            return FALSE;
        }
        $number_rows=$res->num_rows;
        
        if($number_rows==0){
            return FALSE;
        }
        elseif($number_rows==1){
            while ($single=$res->fetch_assoc) {
                $result[]=$single;
            }
            return $result;
        }
        elseif($number_rows>1){
            $result=array();
            while ( $single=$res->fetch_assoc ) {
                $result[]=$single;
            }
            return $result;
        }
    }
    
}
metalboyMedlem sedan jan. 2005953 inlägg
#2

Aktivera visning av felmeddelanden. fetch_assoc är en metod, inte en egenskap. Metoder anropas med metodnamn(). Du saknar () efter metodnamnet.

I de fall $number_rows är 1 så är det onödigt att köra en while-loop eftersom du vet att loopen bara kommer att köras en gång. Dessutom har du inte definierat $result innan du kör den loopen. Du kan korta ned din kod i den delen till följande:

elseif($number_rows==1) {
    return $res->fetch_assoc();
}
Jester73Medlem sedan mars 2012121 inlägg
#3

Tack för info, hade missat att sätta display_error till ON i php.ini
Nu har jag lite mer att gå på :)

129 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)