Deprecated: mysql_connect(): The mysql extension is deprecat

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Deprecated: mysql_connect(): The mysql extension is deprecat

Postby ursman » 27. April 2016 10:40

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in...

Nach dem Neu-Installieren (ApacheFriends XAMPP Version 5.6.20) habe ich diese Fehlermeldung, wenn ich eine Seite im localhost starte.

Die Daten werden normal geladen und alles funktioniert und die Seiten laufen auf dem Host ohne Fehlermeldung.
Auch auf dem Localhost laufen die Seiten normal, nur erhalte ich da diese doofe Fehlermeldung.
Kann/Soll ich diese Meldung vielleicht irgendwie unterdrücken?
Soll ich auf eine andere XAMPP-Version wechseln?
Was raten mir die Experten?

Danke im Voraus für Hilfe und Rat
ursman
ursman
 
Posts: 7
Joined: 29. March 2014 12:46
Location: Grindelwald, Schweiz
XAMPP version: 5.20
Operating System: Windows 7 - 20

Re: Deprecated: mysql_connect(): The mysql extension is depr

Postby Altrea » 27. April 2016 15:46

Hi,

ursman wrote:Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in...

Nach dem Neu-Installieren (ApacheFriends XAMPP Version 5.6.20) habe ich diese Fehlermeldung, wenn ich eine Seite im localhost starte.

Das ist keine Fehlermeldung, sondern eine Kompatibilitätsnotiz. Die Notiz soll Entwickler darauf hinweisen, dass Teile des Codes in zukünftigen PHP Versionen nichtmehr unterstützt werden. In deinem Fall betrifft das die mysql_ Funktionen und diese wurden schon mit der bereits verfügbaren PHP Version 7 entfernt.

ursman wrote:Die Daten werden normal geladen und alles funktioniert und die Seiten laufen auf dem Host ohne Fehlermeldung.

Es ist wie gesagt nur eine Notiz. Die Funktionalität wird dennoch gewährleistet, zumindest bei der von dir eingesetzten PHP Version.
Dass diese Meldung beim Hoster nicht angezeigt wird ist nicht verwunderlich und kann mehrere Ursachen haben.
Wie bereits gesagt ist diese Meldung Primär zur Kenntnisnahme des Entwicklers gedacht. Ein Hoster stellt in aller Regel eine Produktivumgebung bereit auf der entweder garkeine oder nur die Meldungen angezeigt werden die gravierenden Einfluß auf die Funktionalität haben. Dennoch werden diese Meldungen auch bei den Hostern auftreten. Nur werden sie halt nicht angezeigt sondern sind in der Regel nur im Log zu finden.
Hinzu kommt, dass noch nicht viele Hoster PHP 5.6 als primäre PHP Version einsetzen. Das liegt vor Allem an der Unterstützung nahmhafter großer Scripte die meist nur sehr langsam auf neuere Versionen umsteigen. Dein Hoster möchte das Supportaufkommen durch solche Inkompatibilitäten so gering wie möglich halten.

ursman wrote:Kann/Soll ich diese Meldung vielleicht irgendwie unterdrücken?

Das können wir dir nicht sagen. Es gibt unterschiedliche Möglichkeiten auf diese Meldungen zu reagieren. Unterdrücken würde bedeuten sie zu ignorieren. Das kann man tun und bei großen fremden Scripten bleibt einem oft nichts anderes übrig und auf ein Update des Scriptes zu warten dass Kompatibel mit den neuen PHP Funktionen ist.

ursman wrote:Soll ich auf eine andere XAMPP-Version wechseln?

Das wäre auch eine Möglichkeit. Prinzipiell solltest du immer die Version wählen, die deiner Produktivumgebung so nah wie möglich kommt, und zwar in der Regel primär der PHP Version (MySQL/MariaDB und Apache sind in der Regel deutlich kulanter, was die Abwärtskompatibilität betrifft).

ursman wrote:Was raten mir die Experten?

Ist es dein eigenes Script? Dann ignoriere diese Meldungen nicht sondern steige auf aktuelle Techniken um. In deinem Fall bedeutet das: Nutze MySQLi oder PDO statt den alten mysql_ Funktionen.
Ansonsten wähle eine der anderen von dir genannten Möglichkeiten.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Deprecated: mysql_connect(): The mysql extension is depr

Postby ursman » 27. April 2016 16:11

Besten Dank Altrea, für die ausführliche Antwort.

Da bleibt mir wohl nichts anderes übrig als mich an MySQLi zu gewöhnen. Davon habe ich schon gelesen, hatte aber bisher keinen Bedarf gesehen, weil MySQL bisher ohne diese Probleme, die allmählich entstehen können, lief. So werde ich mich da schlau machen müssen. Wird schon gehen.

Mit freundlichen Grüssen
ursman
ursman
 
Posts: 7
Joined: 29. March 2014 12:46
Location: Grindelwald, Schweiz
XAMPP version: 5.20
Operating System: Windows 7 - 20

Re: Deprecated: mysql_connect(): The mysql extension is depr

Postby Nobbie » 27. April 2016 19:36

EIgentlich ist das nichts besonders schwieriges, die Funktions Schnittstelle (es gibt auch eine Klasse mysqli) von mysqli ist im wesentlichen die gleiche wie die von mysql. Bevor Du Deinen kompletten Sourcecode durchsuchst und den Krempel zeilenweise auf mysqli umstellst, empfehle ich eine einfache, selbst geschriebene Schnittstelle.

Baue Dir einfach eine Datei mysql.php (oder ähnlich) und ziehe das via include in Deine Scripts. Und dort "übersetzt" Du einfach mysql nach mysqli, ungefähr so:

Code: Select all
<?php
         function mysql_connect (........) {
                  return mysqli_connect (..........);         
         }
?>


Und auf diese Weise klapperst Du alle Funktionen ab, die Du bei MySQL benötigst. Statt der vielen Pünktchen stehen da natürlich die jeweils richtigen Parameter. Du kannst natürlich auch noch irgendwelchen Code einfügen, je nachdem was Du vielleicht noch machen willst.
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04

Re: Deprecated: mysql_connect(): The mysql extension is depr

Postby Altrea » 27. April 2016 20:05

Nobbie wrote:EIgentlich ist das nichts besonders schwieriges, die Funktions Schnittstelle (es gibt auch eine Klasse mysqli) von mysqli ist im wesentlichen die gleiche wie die von mysql.

Hier hat Nobbie natürlich recht, es gibt in den meisten Fällen für eine mysql_ Funktion eine gleichlautende mysqli_ Funktion. Damit ist die Umstellung, sofern du nicht auf die objektorientierte Schreibweise umstellen möchtest, halb so schlimm.
Einzig bei den Übergabeparametern solltest du aufpassen, hier gibt es ein paar Kandidaten wo sich die Parameterreihenfolge gedreht hat (also der zweite Parameter nun zuerst übergeben werden muss und umgekehrt) oder gar zusätzlich ein Parameter übergeben werden kann/muss (Beispielsweise die offene Datenbankverbindung).
Einen sehr umfassenden Überblick gibt dir hierzu zum Beispiel die folgende Ressource: http://www.phpclasses.org/blog/package/ ... ySQLi.html

Es gibt auch einige Konverter und Migrations Tools die dir die Codeumschreibung erleichtern können. Je nachdem wie Umfangreich dein Code ist würde ich hier ein wenig Zeit in der Suche investieren.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Deprecated: mysql_connect(): The mysql extension is depr

Postby ursman » 30. April 2016 01:02

Danke Atrea und Nobbie für Hilfe und Ermutigung :-)

Ich bin inzwischen schon ein wenig voran gekommen. Mit dem Login-File hatte ich erst mal ziemliche Probleme, aber inzwischen scheint es mir logisch und es macht sogar ein wenig Spass, wenn die Datenbank nach und nach wieder Inhalte her gibt.

Gute Idee mit der PHP-ÜBersetzungsdatei!

M.f.G. ursman
ursman
 
Posts: 7
Joined: 29. March 2014 12:46
Location: Grindelwald, Schweiz
XAMPP version: 5.20
Operating System: Windows 7 - 20


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 14 guests