Grundsätzliches: Umstellung auf PHP7 MYSQLI
Bin grade dabei, einige in ganz altem PHP geschriebene Scripts auf PHP 7 umzustellen.
Vorher konnte ich die SQL Connection eine in ein weiteres Include Script "auslagern", und hatte sie als $conn überall zu Verfügung. Als mysqli_query geht das aber nicht mehr. connect.php: PHP-Code:
index.php: PHP-Code:
Die $conn brauchen ich in vielen Scripten, sie jetzt jedesmal vor die Querys zu schreiben, erscheint mir als "Overhead". Was wäre die eleganteste Lösung? |
AW: Grundsätzliches: Umstellung auf PHP7 MYSQLI
So, jetzt hab ich die Lösung gefunden, eine Klasse zu eröffnen:
class Database { public static $connection; } Database::$connection = new mysqli(HOST, USERNAME, PASSWORD, DATABASE); Ergebnis: $sql = 'SELECT * FROM table'; $result = Database::$connection->query($sql); $result = mysqli_query(Database::$connection, $sql); echo 'Server info ' . mysqli_get_server_info(Database::$connection); Damit steht die Verbindung systemweit zur Verfügung. Aber: ist der Weg richtig? |
AW: Grundsätzliches: Umstellung auf PHP7 MYSQLI
Ich tu mir etwas schwer, deiner Frage zu folgen,
Connectetd wird bei mysqli mit mysqli_connect() gemacht, diese Verbindung muss natürlich so lange bestehen bleiben, bis alle Aufgaben an die Datenbank übergeben sind. Ja nachdem, ob die Verbindung nur in einer Funktion oder innerhalb einer Klasse gebraucht wird, ist sie entsprechend öffentlich oder auch nicht. Ähnlich ist es mit deinen Variablen, je nach dem, wo sie gebraucht werden, sind sie entsprechend zu deklarieren. Das können letztendlich auch Globale sein. Vorgang ist
Ich gehöre zu denen, die für die Verbindung zur Datenbank, eine Funktion dbconnect() aufrufen und dort alles erledigen, was zu tun ist. Ich sehe jedenfalls keinen wesentlichen Fehler in deinem Code-Schnipsel. Eventuell solltest du dir einmal als Beispiel ein simples Gästebuch ansehen, wie es da gelöst wird. |
AW: Grundsätzliches: Umstellung auf PHP7 MYSQLI
Nun, eine Klasse database eröffnen und darin die Eigenschaft Conncection. Habe ich nun gemeacht und klappt auch ganz gut. Für eine zweite Datenbank willl ich mit dieser Methode einen paralellen Zugriff auch noch ermöglichen.
Nach langem Googlen bin ich darauf gestoßen. Es geht wie gesagt darum, sehr alte Scripts umzumodeln auf PHP 7. Und das kommt der alten connect.inc sehr nahe. Das das Schließen automatisch erfolgt, dachte ich mir eigentlich, soll ja mit jedem Abschluss eines Scripts so sein. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 19:25:45 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.