php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 29-11-2006, 17:58
GELight
 Registrierter Benutzer
Links : Onlinestatus : GELight ist offline
Registriert seit: Sep 2004
Beiträge: 243
GELight ist zur Zeit noch ein unbeschriebenes Blatt
GELight eine Nachricht über ICQ schicken
Standard [MSSQL] RessourceType geht verloren...

Nabend zusammen,

Ich habe eine Klasse , die meine Datenbankverbindungen regelt.
Darin wiederum habe ich eine Methode, die den DB Connect und meinen Query ausführt und eine Methode, die die mssql_fetch_object funktion ausführt.

Problem ist, dass beim Ausführen der Methode für den mssql_fetch_object der RessourceType vom Result verloren geht.
Führe ich allerdings direkt nach meinem query die mssql_fetch_object Funktion aus, dann geht alles.

Woran kann es liegen, dass der RessourceType des Results verloren geht?

Mario
Mit Zitat antworten
  #2 (permalink)  
Alt 29-11-2006, 18:23
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zeig uns bitte den Code.
Mit Zitat antworten
  #3 (permalink)  
Alt 29-11-2006, 18:38
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Woran kann es liegen, dass der RessourceType des Results verloren geht?
Ohne dass du sie in deinem Code irgendwo überschreibst, liegt die Wahrscheinlichkeit bei unter 0, das PHP den Wert einer Var einfach so verliert.
Also drum etwas Quellcode bitte

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #4 (permalink)  
Alt 29-11-2006, 18:41
GELight
 Registrierter Benutzer
Links : Onlinestatus : GELight ist offline
Registriert seit: Sep 2004
Beiträge: 243
GELight ist zur Zeit noch ein unbeschriebenes Blatt
GELight eine Nachricht über ICQ schicken
Standard RessourceType geht verloren

Ich führe innerhalb der Klasse die Methode connect() aus, die den DB_Connect ausführt und den Query ausführt.
Danach führe ich die Methode fetch_object () aus um meine Daten raus zu bekommen.

PHP-Code:
private function connect(......){
$this->db_result mssql_query"mein query"$db );
// direkt nach dem mssql_query befehl ist die Ressource noch verfügbar

}


// führe ich stattdessen die function fetch_object aus, so ist die Ressource nicht mehr verfügbar und "unknown".
    
public function fetch_object (){

        
$this->fetch_obj();
        return 
$this->db_fetch_object;
        
    }

    private function 
fetch_obj(){
    
        
$this->db_fetch_object mssql_fetch_object$this->db_result );

        
    } 
Mit Zitat antworten
  #5 (permalink)  
Alt 29-11-2006, 18:44
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Und wenn du deine Methode mal testweise so schreibst ?
PHP-Code:
public function fetch_object (){
        
var_dump($this->db_result);
        
$this->fetch_obj();
        return 
$this->db_fetch_object;
        

Ist's dann immer noch unbekannt ?

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #6 (permalink)  
Alt 29-11-2006, 19:07
GELight
 Registrierter Benutzer
Links : Onlinestatus : GELight ist offline
Registriert seit: Sep 2004
Beiträge: 243
GELight ist zur Zeit noch ein unbeschriebenes Blatt
GELight eine Nachricht über ICQ schicken
Standard [MSSQL] RessourceType geht verloren

Ja der RessourceType ist verloren, sobald ich versuche ihn über eine Methode zu nutzen.

Direkt nach dem Ausführen des Query:
resource(85) of type (mssql result)

Nach dem Ausführen der Methode:
resource(85) of type (Unknown)

Mario
Mit Zitat antworten
  #7 (permalink)  
Alt 29-11-2006, 19:28
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wie ist $db_result definiert ? Private oder public ?
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #8 (permalink)  
Alt 29-11-2006, 19:36
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Auch schon so probiert ?
PHP-Code:
global $this->db_result mssql_query"mein query"$db ); 
Auf globale Vars können grundsätzlich alle Methoden einer Klasse zugreifen.
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #9 (permalink)  
Alt 29-11-2006, 20:22
GELight
 Registrierter Benutzer
Links : Onlinestatus : GELight ist offline
Registriert seit: Sep 2004
Beiträge: 243
GELight ist zur Zeit noch ein unbeschriebenes Blatt
GELight eine Nachricht über ICQ schicken
Standard [MSSQL] RessourceType geht verloren

Also wenn ich schreibe:

PHP-Code:
global $this->db_result mssql_query"mein query"$db ); 
... dann bringt er diese Meldung, die ich nicht so recht nachvollziehen kann. ..." Fatal error: Cannot re-assign $this in "...

Ich hab keinerlei Ideen mehr, was das sein soll.
Wie gesagt... führe ich innerhalb der selben Methode direkt nach dem mssql_query() das var_dump ( $this->db_result ); aus, dann gibt er mir resource(85) of type (mssql result) zurück.

Führe ich danach von außen zB. $db->fetch_object() aus, dann bekomme ich nur noch resource(85) of type (Unknown) zurück.

Ich kann sozusagen nicht über eine Methode die Ressource verwenden, da sie nicht mehr bekannt ist.

Mario
Mit Zitat antworten
  #10 (permalink)  
Alt 29-11-2006, 20:42
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry mein Fehler. Schreib am Anfang deiner Klasse noch vor jeglichen Methoden
PHP-Code:
global $db_result
Btw ein
PHP-Code:
error_reporting(E_ALL); 
ganz am Anfang deines Scriptes hast du und bringt keine Fehlermeldungen ?

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #11 (permalink)  
Alt 29-11-2006, 20:55
GELight
 Registrierter Benutzer
Links : Onlinestatus : GELight ist offline
Registriert seit: Sep 2004
Beiträge: 243
GELight ist zur Zeit noch ein unbeschriebenes Blatt
GELight eine Nachricht über ICQ schicken
Standard [MSSQL] RessourceType geht verloren

schreibe ich vor alle meine Methoden ein "global", dann kommt diese meldung.

Parse error: parse error, unexpected T_GLOBAL, expecting T_FUNCTION in

Selbst wenn ich überall private oder public weglasse, ist die Ressource bei ausführen der Methode ( Unknown )
error_reporting(E_ALL); ist jetzt mit angegeben aber beim Ausführen der Klasse und deren Methoden kommt es zu keinem Fehler.


Mario

Geändert von GELight (29-11-2006 um 20:58 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 29-11-2006, 21:19
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du sollst nicht die Methoden (Funktionen) sondern die Variable global setzen !

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #13 (permalink)  
Alt 29-11-2006, 21:25
GELight
 Registrierter Benutzer
Links : Onlinestatus : GELight ist offline
Registriert seit: Sep 2004
Beiträge: 243
GELight ist zur Zeit noch ein unbeschriebenes Blatt
GELight eine Nachricht über ICQ schicken
Standard [MSSQL] RessourceType geht verloren

$this->db_result ist private gesetzt und wird ausschließlich innerhalb der Klasse verwendet.

definieren ich $this->db_result mit global, dann kommt es zu....
Fatal error: Cannot re-assign $this in

Mario
Mit Zitat antworten
  #14 (permalink)  
Alt 29-11-2006, 21:31
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du musst nicht $this->var global setzen sondern $var
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #15 (permalink)  
Alt 29-11-2006, 22:00
GELight
 Registrierter Benutzer
Links : Onlinestatus : GELight ist offline
Registriert seit: Sep 2004
Beiträge: 243
GELight ist zur Zeit noch ein unbeschriebenes Blatt
GELight eine Nachricht über ICQ schicken
Standard [MSSQL] RessourceType geht verloren

Also ich weiß jetzt nicht mehr so recht nach 7 Stunden Fehlersuche, was das global in dem Fehler evtl. ändern sollte. Sehe keine so rechte Logik darin, dass er den RessourceType danach durch eine global Variable behalten sollte.

Ich hab jetzt genau deine Schreibweisen, wie du schon geschrieben hast mit dem global versucht aber es kommt entweder dieser Fatal error: Cannot re-assign $this in.. Fehler oder es kommt zu einem ParseError.

Die Frage ist immernoch, warum ich keinen Zugriff mehr auf den RessourceType in einer anderen Methode der Klasse habe.

Mario
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:55 Uhr.