Zum Inhalt springen

verbindung zu Datenbank auf und abbauen in php


Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Wochen später...
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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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