Brei Geschrieben 13. März 2005 Geschrieben 13. März 2005 Hallo, ich habe die zugansdaten in einer .inc.php datei abgelegt. Da steht auch die mysql connect und die select_db Funktion drin. Ist es nun sinnnvoll am anfang eines skripts sich zu verbinden (also die inc.php mit include einbinden) und ganz am ende wieder zu closen? oder soll ich sobald ich sie nicht mehr benötige closen und später im scirpt wieder öffnen? Also mehrmals includen und closen? soll ich die datei mit include, require, oder require once oder include once einbinden? Zitieren
DFBL-Benjamin Geschrieben 13. März 2005 Geschrieben 13. März 2005 ich binde die Zugangsdaten immer mit include ein. Weis nicht ob dass das beste ich. da kenne ich mich in der Materie noch nicht so gut aus. Aber mich würde eher interessieren, ob man das Beenden muss? Ich habe eine Plattform erstellt in den mehrere Skripte aufgerufen werden können, bei jedem steht der include-Befehl mit den MYSQL-Daten drin, weil sonst würde das mit der Datenbank gar nicht funktionieren, oder? Ich bekomme dann halt immer Fehlermeldungen, das die MYSQL-Befehle nicht ausgeführt werden können. hoffe uns kann geholfen werden? Zitieren
robotto7831a Geschrieben 13. März 2005 Geschrieben 13. März 2005 Also schließen kann man include bzw. require nicht. Das passiert wahrscheinlich intern. Der komplette Inhalt aus den Dateien wird an der Stelle wo include oder require steht eingefügt. Bei require_once wird die Datei nur einmal eingebunden. Frank Zitieren
kills Geschrieben 13. März 2005 Geschrieben 13. März 2005 Also schließen kann man include bzw. require nicht. Das passiert wahrscheinlich intern. Der komplette Inhalt aus den Dateien wird an der Stelle wo include oder require steht eingefügt. Bei require_once wird die Datei nur einmal eingebunden. Frank ich glaub palveolgyi hat das ein wenig falsch verstanden. Ich glaube er meint wie/wann man die Verbindung schließen muss... Also ich würde auf jeden Fall in jedem Script das durch den Benutzer aufgerufen werden soll per require_once die datenbankdaten einbinden. Schließen sollte man diese Verbindung auch. Daher sollte man damit nicht alles doppelt und dreifach ist, all seine aufrufe über die index.php o. ä. datei machen. In dieser dann einfach am Anfang die Verbindung aufbauen und am ende schließen... Gruß, Markus Zitieren
Brei Geschrieben 13. März 2005 Autor Geschrieben 13. März 2005 @kills also quasi so: requrie_once("verbindungsdaten.inc.php"); Befehl; Befehl; Befehl; ... mysql_close($db); [/PHP] auch wennzwischen drin paar befehle sind, die keine Daten von der DB brauchen? Zitieren
kills Geschrieben 13. März 2005 Geschrieben 13. März 2005 jep so ungefähr.. requrie_once("connection/open.inc.php"); Befehl; Befehl; Befehl; ... requrie_once("connection/close.inc.php"); [/PHP] zwischendrinn die verbindung nicht schließen! Zitieren
Brei Geschrieben 13. März 2005 Autor Geschrieben 13. März 2005 achso, quasi die den einen Befehl auch in eine extra inc.php packen? Zitieren
freq.9 Geschrieben 13. März 2005 Geschrieben 13. März 2005 achso, quasi die den einen Befehl auch in eine extra inc.php packen? du musst garnichts in eine extra Datei packen. Wäre auch ein wenig Performance-fressend (wenn dun riesen Projekt hast) aber ich würds jedenfalls einfach so einbinden, oder ich würd ne Klasse nutzen, mit einem Destruktor. Zitieren
kills Geschrieben 13. März 2005 Geschrieben 13. März 2005 du musst garnichts in eine extra Datei packen. Wäre auch ein wenig Performance-fressend (wenn dun riesen Projekt hast) aber ich würds jedenfalls einfach so einbinden, oder ich würd ne Klasse nutzen, mit einem Destruktor. Eine Datenbank-Klasse ist dem ganzen natürlich vorzuziehen. Ob das aber nun performance-fressend ist, wegen einem Include mehr wage ich zu bezweifeln... Gruß, Markus Zitieren
freq.9 Geschrieben 13. März 2005 Geschrieben 13. März 2005 Eine Datenbank-Klasse ist dem ganzen natürlich vorzuziehen. Ob das aber nun performance-fressend ist, wegen einem Include mehr wage ich zu bezweifeln... Gruß, Markus Darum meinte ich ja auch, wenn es ein großes Projekt ist. Bei kleinen Projekten mit 1000 Besuchern im Monat wird das nichts ausmachen aber wenn es an die 100000 oder so geht kann das doch schon was ausmachen, wobei das auch noch minimal wäre. Zitieren
Brei Geschrieben 16. März 2005 Autor Geschrieben 16. März 2005 nochmal was: wenn ich ne verbindung aufbaue und dann im script mit die("Fehler"); abbreche habe ich die Verbindung nicht getrennt. Muss ich davor die verbindung trennen oder wird das automatisch gemacht. Das free_result() kann man sich eigentlich auch sparen, da ja alle variablen am Ende des Skripts eh gelöscht werden. Gilt das auch für Datenbankverbindungen? Zitieren
kills Geschrieben 16. März 2005 Geschrieben 16. März 2005 Das free_result() kann man sich eigentlich auch sparen, da ja alle variablen am Ende des Skripts eh gelöscht werden. Gilt das auch für Datenbankverbindungen? Generell eigentlich schon. Alle variablen werden nach ablauf des Scripts gelöscht (ausser session/cookie vars). Aber wenn du ein script hast, welches länger abläuft, dann ist es besser das free_result zu verwenden, da die resourcen die dort freigegeben werden innerhalb des scripts wiederverwendet werden können Zitieren
Brei Geschrieben 31. März 2005 Autor Geschrieben 31. März 2005 nochmal speziell zu dem die()-Problem wenn ich die Verarbeitung nun mit dem die() abbreche, ist die sql verbindung dann noch offen? Sicherheitsprobleme? Speicherverbrauch? Zitieren
kills Geschrieben 31. März 2005 Geschrieben 31. März 2005 nochmal speziell zu dem die()-Problem wenn ich die Verarbeitung nun mit dem die() abbreche, ist die sql verbindung dann noch offen? Sicherheitsprobleme? Speicherverbrauch? AFAIK ist die Verbindung ist noch offen, wird aber nach einem bestimmten Timeout beendet werden. Vielleicht solltest du "Persistente Verbindungen" wählen... mysql_pconnect()... Gruß, Markus Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.