php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.07.2011, 10:34  
Benutzer
 
Registriert seit: 15.05.2011
Beiträge: 48
PHP-Kenntnisse:
Anfänger
Mynoriem befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Cannot use object of type mysqli_result as array

Ich habe eine Funktion für Datenbankabfragen.

Das Ergebniss soll in ein array:
PHP-Code:
private function makeArrayResult($ResultObj)
    {
        if(
$ResultObj === false)
        {
            
//ein fehler ist aufgetreten
            
$this->lastSQLStatus false;
            return 
false;
        }
        else if(
$ResultObj === true)
        {
            
//Abfrage erfolgreich aber ohne Ergebniss bsp. UPDATE
            
$this->lastSQLStatus true;
            return 
true;
        }
        else if(
$ResultObj->num_rows == 0)
        {    
            
//Abfrage erfolgreich mit leerem Ergebniss bsp. (SELECT = 0)
            
$this->lastSQLStatus true;
            return array();
        }
        else
        {
            
//Abfage erfolgreich Ergebniss wird in ein Array geschrieben
            
$array = array();
            while(
$line $ResultObj->fetch_array(MYSQL_ASSOC))
            {
                
array_push($array$line);
            }
            
$this->lastSQLStatus true;
            return 
$array;
        }
    } 
Hier nutze ich die Funktion. Bzw. in der Schleife bricht der Code ab,:
PHP-Code:
    public function _read($sesID)
    {
        
$sessionStatement "SELECT * FROM sessions WHERE id = '$sesID'";
        
$result $this->DB->query($sessionStatement);
        
        if(
$result === false)
        {
            return 
'';
        }
        
        if(
count($result) > 0)
        {
            return 
$result[0]["value"]; <------ Zeile 49
        
}
        else
        {
            return 
'';
        }
    } 
und bekomme diese Fehlermeldung
Code:
Fatal error: Cannot use object of type mysqli_result as array

Wieso kann er es nicht mehr als array nutzen?
Oder liegt das Problem wo anders und ich sehe es nur nicht?
Mynoriem ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.07.2011, 11:03  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.870
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Na dann schlag mal nach was mysqli 's query-methode als result liefert und danach überleg mal obs sinnvoll ist ein "object to array" converter zu basteln wenn du ihn nicht nutzt ^^
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 18.07.2011, 11:40  
Benutzer
 
Registriert seit: 15.05.2011
Beiträge: 48
PHP-Kenntnisse:
Anfänger
Mynoriem befindet sich auf einem aufstrebenden Ast
Standard

Also das Problem ist gelöst.
Die Tabelle heisst "session" und nicht "sessions".

Totaler Blödsinn
Ich war mit der falschen Datenbank verbunden.
Nun bin ich mit der richtigen verbunden und der fehler sit wieder da.

Geändert von Mynoriem (18.07.2011 um 12:06 Uhr).
Mynoriem ist offline   Mit Zitat antworten
Alt 18.07.2011, 12:13  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

dann lies bitte nochmal die Antwort von tr0y ,.,,,


du zeigst uns im oberen Script-Block den Code, der korrekt ein mysqli-Result per fetch-Array holt ...

aber im unteren Code-Block benutzt du diesen Code gar nicht - du schickst die Abfrage zur Datenbank und greifst dann direkt auf das mysqli-result im Array-Kontext zu - dafür musst du aber zuerst das Ergebnis mal fetchen ...oder du benutzt deinen selbst geschriebenen Code aus dem ersten Block - dafür ist der doch da, dachte ich

wenn das geht .. versuch es mal mit

PHP-Code:
$result $this->DB->makeArrayResult($this->DB->query($sessionStatement)); 
ich würd dir aber vorschlagen, dass es günstiger erscheint, wenn deine makeArrayResult-Methode SELBST die Query an die Datenbank schickt
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

Geändert von eagle275 (18.07.2011 um 12:17 Uhr).
eagle275 ist offline   Mit Zitat antworten
Alt 18.07.2011, 13:59  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.870
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

oder ein eigener Result-Decorator:

PHP-Code:
$result $this->DB->query($dingens)->asArray();
$result $this->DB->query($dingens)->asResultObject(); 
oder statt die Datenbanken durch den ganzen Object-Complex zu routen:
PHP-Code:
$result Database::query($dingens)->asArray();
$result Database::query($dingens)->asResultObject(); 
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 18.07.2011, 16:20  
Benutzer
 
Registriert seit: 15.05.2011
Beiträge: 48
PHP-Kenntnisse:
Anfänger
Mynoriem befindet sich auf einem aufstrebenden Ast
Standard

So jetzt hab ich den fehler gefunden:
PHP-Code:
public function query($sqlQuery$resultset false)
    {
        
$this->lastSQLQuery $sqlQuery;

        
$result $this->MySQLiObj->query($sqlQuery);

        if(
$resultset == true); <------dA ist er
        
{
            if(
$result == false)
            {
                
$this->lastSQLStatus false;
            }
            else
            {
                
$this->lastSQLStatus true;
            }
            return 
$result;
        }
        
$return $this->makeArrayResult($result);
        return 
$return;
    } 
in der function query ist der fehler versteckt.

Ohne dieses semikolon funktioniert alles reibungslos.
Mynoriem ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mysqli - Object Array wird mehrfach erzeugt Phil7789 PHP Einsteiger 19 11.05.2011 18:37
mehrdimensionales array inhalte tauschen pidaman PHP Tipps 2010 18 27.08.2010 16:58
[Erledigt] Problem bei update mit array feldern fulltilt PHP Tipps 2010 6 13.02.2010 00:59
Cannot use object of type stdClass marc77 PHP Tipps 2010 2 05.02.2010 15:37
merge Array? tommy_725 PHP Tipps 2009 3 07.08.2009 18:30
[Erledigt] Tabellen die sich selbst referenzieren Squall PHP Tipps 2009 19 04.08.2009 21:33
[Erledigt] Object + Array + Object ausgeben Roflkid PHP-Fortgeschrittene 3 17.05.2009 17:28
Array umwandeln von zwei zu mehrdimensional erselbst PHP Tipps 2009 6 02.04.2009 23:30
Persistence Framework #Avedo Software-Design 37 28.03.2009 17:32
XAMP gehts, auf realer server nicht: Fehler: Cannot use object of type ... as array mysteryxxx PHP-Fortgeschrittene 4 03.08.2008 18:08
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25
bbcode - Classe PHP-Fortgeschrittene 4 18.09.2004 17:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
cannot use object of type stdclass as array, cannot use object of type mysqli_result as array, cannot use object of type stdclass as array in, php cannot use object of type stdclass as array, php mysqli fetch_array() mehrdimensionales array ausgeben -mysql, cannot use object of type as array, cannot use object of type stdclass as array php, mysqli_result als rückgabewert funktion php, \cannot use object of type mysqli_result as array\, fatal error: cannot use object of type mysqli_result as array in, merge mysqli_result onject php, fatal error: cannot use object of type mysqli_result as array, object(mysqli_result), query object array fehler was nun, cannot use object of type kurs as array, cannot use object of type stdclass as array in php, mysqli_result object, cannot use object of type mysqli_result as array in, cannot use object of std type sql, makearrayresult

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:52 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum