php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.10.2006, 16:27  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard MySQL - Klasse: Wie da mysql_close benutzen

Tagwohl Leute

Ich hab mich für ein neues Projekt mal daran gemacht, mit PHP objektorientiert zu programmieren. Das funktioniert soweit auch ganz okay.

Nun möchte ich aber eine Datenbankklasse schreiben und habe dabei folgende Ausgangslage:

Ich instanziere im Hauptfile (Hauptfile darum, weil immer das File aufgerufen und je nach Parameter andere Files included werden) ein Objekt der Mysql-Klasse:
Code:
$Mysql = new Mysql();
Die Klasse Mysql hat einen Konstruktor, der sofort, wenn ein neues Objekt generiert wird, eine Verbindung mit der Datenbank aufnimmt:
PHP-Code:
    function Mysql()    {
        
$this->con = @mysql_connect(DB_HOSTDB_USERDB_PASS)
            or die(
"<hr />Connect: ".mysql_error()."<hr />
"
);
        if(
$this->con)    {
            
$this->con $this->db_select_db();
        }
        return 
$this->con;
    } 
Jetzt möchte ich die MySQL-Sitzung wieder schliessen. Da ich die Sitzung am Anfang des Hauptfiles eröffnet habe, möchte ich sie am Schluss wieder schliessen. Ich möchte dies darum so, weil ich sonst für jede Datenbankabfrage ein neues Objekt der Klasse Mysql instanzieren müsste, was mich eine sehr unschöne Lösung dünkt.

Meine Frage jetzt:
Wie kann ich die Sitzung am besten schliessen?
1. Methode in der Klasse? --> Hab ich probiert:
PHP-Code:
    function db_close_db($con)    {
        
mysql_close($this->con);
    } 
Fehlermeldung:
Code:
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in C:\Programme\xampp\xampp\htdocs\template\config\Mysql.class.php on line 38
Eigentlich ist $con der Connectionhandler in der Klasse und somit sollte ich die Connection doch damit schliessen können, oder? Ich hoffe ihr könnt mir da bissl helfen. Danke schon im Voraus.

Gruss Igäl
Igäl ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.10.2006, 17:11  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

$this->con ist bei dir aber nicht die Connection sondern mysql_select_db() ... daher kommt dieser Fehler!
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist offline  
Alt 01.10.2006, 17:16  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Ach wie doof. Ja klar -.-

Sorry für die Zeit die du damit verplempert hast ^^ Aber kaum lernt man etwas neues, sieht man vor lauter Bäumen den Wald nicht mehr. Vielen Dank Razor
Igäl ist offline  
Alt 01.10.2006, 19:35  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Hrhr ja mei ^^ auf sowas kommt man nicht unbedingt sofort
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist offline  
Alt 01.10.2006, 20:13  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ein Konstruktor hat übrigens keinen (von dir beeinflußbaren) Rückgabewert.

PHP-Code:
<?php
function db_close_db($con)    {
   
mysql_close($this->con);
}
?>
Wofür ist $con?
Zergling-new ist offline  
Alt 01.10.2006, 23:09  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

...ansonsten kannst du die Methode Mysql::close() auch noch über den Destruktor[1] aufrufen. Damit msst du die von Hand nur aufrufen, wenn es während der Laufzeit sinnvoll ist.

[1] http://php.net/manual/en/language.oop5.decon.php

Basti
Basti ist offline  
 


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
eigene Klasse für mySql PW und UN Reen_Sc Datenbanken 4 09.07.2008 16:15
[Erledigt] MySQL - ERROR 1044 bei erstellen einer Datenbank _youngenterpriser_ Datenbanken 2 05.02.2008 17:56
PHP + MySQL zwei Instanzen vertragen sich nicht Leisurelarry PHP Tipps 2008 11 04.10.2007 16:45
Mysql Server Einstellunen Optimieren pchero Datenbanken 3 01.05.2007 19:50
String-Parser Klasse - was muss rein? Matze PHP Tipps 2007 2 08.04.2007 22:14
OOP => MySQL Klasse Kein Genie PHP Tipps 2007 16 16.03.2007 14:57
tutorial mysql klassen im oop projekt phpdummi Beitragsarchiv 4 17.01.2007 20:17
mysql klasse - handling mehrerer connections mrSpok PHP Tipps 2006 5 14.04.2006 01:05
mehr als eine Klasse einbinden Alpha Centauri PHP-Fortgeschrittene 4 13.04.2006 20:56
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
MYSQL läuft nur wenn /tmp auf 777 Datenbanken 5 06.07.2005 08:38
mysql root passwort vergessen Datenbanken 1 29.05.2005 11:33
Habe Mysql KLasse geschrieben, aber... Spike_php PHP-Fortgeschrittene 10 27.03.2005 09:15
[Erledigt] Access denied for user: '@localhost' / SYSTEM@localhost Datenbanken 0 10.11.2004 20:35
PHP5 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; MySQL Datenbanken 5 01.08.2004 05:47

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql_close, mysql_close(), mysql_close 2 is not a valid mysql-link resource, mysql_close c, php destructor mysql_close, http://www.php.de/php-tipps-2006/42334-mysql-klasse-wie-da-mysql_close-benutzen.html, mysql_close(): 17 is not a valid mysql-link resource in, php class mysql_close, mysql_close verwenden, warning: mysql_close(): 1 is not a valid mysql-link resource, mysql_close php objekt, mysql_close im destruktor, php klasse destruktor mysql_close, mysql_close(): 2 is not a valid mysql-link resource, mysql_close wann anwenden, mysql class, c mysql_close, mysql close immer anwenden?, mysql objektorientiert in klassen, mysql klasse php

Alle Zeitangaben in WEZ +1. Es ist jetzt 15:59 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.