SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQL

MySQL Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQL diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 12.05.2017, 11:46:20
Blenn Blenn ist offline
Anfänger
 
Registriert seit: May 2017
Ort: Essen
Alter: 54
Beiträge: 3
Blenn befindet sich auf einem aufstrebenden Ast
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:
$conn = new mysqli ("localhost""xyzxyz""Password") or die ('I cannot connect to the database  '
wohl weil das mysqli Objekt aus der Connect.php Privat ist, nicht mehr global.

index.php:
PHP-Code:
$abfrage_schluessel 'select * from marker where name="visit"';
$ergebnissmysqli_query($conn,$abfrage_schluessel); 
Ich habe versucht, die $conn Variable zur Globalen zur Erklären, aber das klappt noch nicht. Man liest auch überall, das es als Globale nicht gut wäre, deshalb frage ich jetzt lieber in kundigem Kreise nach dem richtigen Vorgehen, statt weiter zu Experimentieren und die erste funktionierende Lösung einfach zu übernehmen.

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?
Mit Zitat antworten
  #2  
Alt 12.05.2017, 20:41:22
Blenn Blenn ist offline
Anfänger
 
Registriert seit: May 2017
Ort: Essen
Alter: 54
Beiträge: 3
Blenn befindet sich auf einem aufstrebenden Ast
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?
Mit Zitat antworten
  #3  
Alt 15.05.2017, 11:07:36
sysop sysop ist offline
Junior Member
 
Registriert seit: Mar 2004
Ort: wien
Beiträge: 492
sysop befindet sich auf einem aufstrebenden Ast
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
  1. Connect
  2. Statement (Query)
  3. Close (bei den gängigen Datenbanken ja mittlerweile automatisch, entfällt also in der Praxis)
Je nach Klasse und Programmierstil, kann die Verbindung zur Datenbank nun auch innerhalb der Klasse wieder geschlossen werden oder muss Systemweit erhalten bleiben. Das hängt doch von dir, deinem Script und einem Programmierstil ab.

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.
__________________
Gruss sys ;-)
Ich möchte wie mein Grossvater sterben, lächelnd und schlafend, nicht schreiend und weinend, wie sein Beifahrer.
Mit Zitat antworten
  #4  
Alt 15.05.2017, 18:41:33
Blenn Blenn ist offline
Anfänger
 
Registriert seit: May 2017
Ort: Essen
Alter: 54
Beiträge: 3
Blenn befindet sich auf einem aufstrebenden Ast
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.
Mit Zitat antworten
Antwort

Stichworte
mysqli $conn php7


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mysql nach mysqli oi1996 MySQL 1 18.01.2016 15:28:50
MySQL auf MySQLi umstellen dasc93 MySQL 6 31.05.2014 01:34:52
Problem Mysql zu Mysqli PrelaYer MySQL 5 13.09.2013 08:01:20
PHP Data Object oder MySQL MySQLi Estefano MySQL 0 08.10.2009 10:19:04
mysqli nicht gefunden Don Stefano PHP Grundlagen 1 25.02.2005 16:44:49


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:25:00 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.


© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt