Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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?

Geschrieben

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?

Geschrieben

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

Geschrieben
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

Geschrieben

@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?

Geschrieben

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!

Geschrieben
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.

Geschrieben
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

Geschrieben
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.

Geschrieben

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?

Geschrieben

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

  • 3 Wochen später...
Geschrieben

nochmal speziell zu dem die()-Problem

wenn ich die Verarbeitung nun mit dem die() abbreche, ist die sql verbindung dann noch offen?

Sicherheitsprobleme?

Speicherverbrauch?

Geschrieben
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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...