Mit der gleichen MySQL-Verbindung in verschiedenen PHP-Seiten
Ich bin der Erstellung einer einfachen Web-Anwendung in PHP für meine college-Projekt. Ich bin mit der MySQL-Datenbank.
Ich eine Datenbank in login.php. Nach dem Anschluss den ich zuordnen, die Verbindung zu $_SESSION["conn"] und dann umleiten zu main.php.
In main.php ich Schreibe $conn = $_SESSION["conn"]. Aber die Verbindung $conn funktioniert nicht.
Ich dachte, dass das login.php Skript beendet, wird die Verbindung geschlossen wird. Also versuchte ich mit mysql_pconnect statt mysql_connect aber auch das funktioniert nicht.
Ich weiß, ich kann die Verbindung zur Datenbank in jeder PHP-Datei. Aber ich will nicht, dies zu tun. Ich will dieselbe Verbindung verwenden, in allen PHP-Dateien.
wenn man nicht sparen Sie Ressourcen, um die Sitzung zu beginnen mit, das ist irgendwie eine seltsame Sache zu sagen.
Ich meinte speichern. Nicht sicher, ob dies machbar ist in PHP oder nicht.
InformationsquelleAutor Cracker | 2010-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt zu sparen, die DB-Verbindung in einer Sitzung sollten Sie die Verbindung herstellen Anrufe in einer separaten Datei wie db.php und dann verlangen Sie von jedem Ihrer Skripte. Zum Beispiel, legen Sie Ihre Verbindung in der db.php:
und dann bringen Sie es in login.php:
Können Sie dann tun Sie das gleiche für jede PHP-Datei, die benötigt Zugriff auf die DB und du wirst immer nur eine änderung an der DB-Zugangsdaten in einer Datei.
InformationsquelleAutor nortron
Werden Sie wahrscheinlich wollen, zu Lesen, auf PHP-sessions. Sie können nicht speichern von Ressourcen (Datenbank-verbindungen, Datei-handles, etc) in einer Sitzung, da Sie nicht serialisiert und gespeichert.
Beachten Sie, dass jede und jeder Zugriff auf ein PHP-Skript ruft eine neue Instanz des PHP-interpreters (über CGI, via FastCGI oder über eine built-in-Modul), und ruft eine neue Instanz des Skripts. Nichts ist geteilt zwischen Skript-Aufrufe, da die gesamte Umgebung verschwindet, wenn das Skript beendet wird.
Die anderen Antworten sind richtig-Sie müssen eine Verbindung zu der Datenbank bei jedem script-Aufruf. Legen Sie die Verbindung in einer gemeinsamen include-Datei für die Bequemlichkeit.
InformationsquelleAutor Charles
Die zweite Anforderung kann nicht bedient werden, die von den gleichen web-server-Prozess wie die erste, was bedeutet, dass Sie haben einen völlig separaten Satz von Datenbank-Ressourcen. Müssen Sie wieder in diesem neuen Prozess um Abfragen auszuführen.
InformationsquelleAutor Ignacio Vazquez-Abrams
Was ich normalerweise habe, ist eine Connection-Klasse, die Webseiten benötigen, um eine Verbindung herzustellen. Etwas entlang der Linien von:
Diese Klasse behandelt das öffnen und schließen der Verbindung auf jeder Seite.
InformationsquelleAutor Justin Skiles
Es klingt, dass Sie wollen, um Ihren php-verbindungen persistants , und wenn es so ist , dann müssen Sie erstellen Sie ein PDO-Objekt mit den erforderlichen Parametern erstellen Sie eine neue PHP-PDO-Objekt, das versucht, eine Verbindung zu mysql , und in der Objekt-Instanziierungen , versuchen Sie, geben persistancy option den Wert true möglicherweise haben Sie in jeder php-Skripte, die das gleiche PDO-Verbindung Objetc aber Sie werden am Ende zu Gesicht Probleme mit ... aber es ist nicht reconmmanded wie PHP-Programmierung Best Pratices ... der beste Weg, dies zu tun ist, um eine Verbindung Datei für jedes Skript in Ihrem Projekt. Lesen Sie in der PHP-Dokumentation für Persistente Verbindungen, um zu lernen, mehr über Probleme, die für diese Verbindung Objets vor allem für neuere php-Versionen. PHP Meldet, dass Persistente Verbindungen sind auf dem Weg zu sein, sank von futur-version, da es zu einer zunehmenden Auslastung der server mit persistenten Ressourcen ... Sorry, wenn es zu spät ist
InformationsquelleAutor Shabasha