Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi!

Ich hab eine php-site "Funktionen.php"

da drin stehen alle PHP-Funktionen die ich für meine Site benötige.

Dort gibt es unterschiedliche Funktionen die auf ein und die selbe datenbank zugreifen.

Dabei rufe ich immer mysql_connect am anfang der funktion auf.

ist das sinnvoll?

am ende jeder funktion wird die verbindung geschlossen.

oder reicht es wenn ich einmal auf meiner index.php eine verbindung herstelle und dann diese in den funktionen nutze??

Geschrieben

wenn index.php in deinem browser geladen ist, kennt der server dich nicht mehr.

Aber es geht über sessions:

OOP php 5

Ich rate dir von sessions und connections ab. Das ist nicht sonderlich performant.

Geschrieben (bearbeitet)

Du kannst ein einziges mal eine Verbindung aufbauen und musst die dann eben an alle Funktionen übergeben. Dabei musst du aber bedenken, dass eine PHP-Seite nur solange aktiv ist bis sie ausgeliefert wurde.

Ich gehe mal davon aus, dass deine Funktionen.php immer igendwo eingebunden ist, z.b. in der index.php (die dann immer aufgerufen wird). Dann reicht es aus das einmal zu machen.

Aber, das dürfte eigentlich kaum Vorteile bringen. Moderne DBMS beherrschen das Connection Pooling. Die Verbindung wird also nicht jedesmal komplett neu aufgebaut wenn du mysql_connect mehrfach in einem Skript (u.U. sogar über mehrere Skripte, nacheinander aufgerufen, verteilt). Die Verbindung wird halb offen gehalten. Also nicht komplett, dann würden ja wohl bald keine mehr gehen, aber eine neue Verbindung die schonmal existiert hat geht schneller.

Und DB-Verbindungen kannst du nicht in einer Session ablegen(*).

EDIT:

*: Stell dir das mal vor... Eine HTTP-Verbindung ist stateless. Eine Anfrage ist also immer unabhängig von allen anderen. Eine offene Verbindung in der DB speichern... du weißt ja nie ob danach noch eine abfrage kommt oder der User den Browser zu hat etc. Je nach Einstellung würde die Verbindung dann wochenlang offen gehalten (also theoretisch).

Nene, eine Connection geht nicht in eine Session.

Bearbeitet von JesterDay
  • 2 Wochen später...
Geschrieben

Es gibt auch die Möglichkeit der persistenten Verbindung zu MySQL. dazu einfach

mysql_pconnect()

verwenden. Der Witz bei dieser Verbindungsart ist, dass diese bestehen bleibt bzw. beim nächsten Skriptaufruf nach einer bestehenden Verbindung zuerst gesucht wird.

Was auch möglich ist, ist die Datenbankanbindung selbst in eine Funktion zu packen (hat den Vorteil, dass diese nur in der Funktion dann gültig ist, also von außen kein Zugriff, Fehler lassen sich leichter Abfangen, Einfacher Aufruf für Datenbankabfragen).

function mysql($query)
{
$connection = mysql_connect("host", "user", "passwort");
mysql_select_db("datenbank", $connection);
$result = mysql_query($query, $connection);

if($result)
return $result;
else
return false;
}[/PHP]

Gruß und schönes Wochenende,

Lindi

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