Ich erhalte diese Warnung, aber das Programm läuft immer noch korrekt.
Der MySQL-Code zeigt mir eine Nachricht in PHP:
Veraltet: mysql_connect (): Die Erweiterung mysql ist veraltet und wird in Zukunft entfernt: Verwenden Sie stattdessen mysqli oder PDO in C: \ xampp \ htdocs \ task \ media \ new \ connect.inc.php in Zeile 2
Meine connect.inc.php
Seite ist
<?php
$connect = mysql_connect('localhost','root','');
mysql_select_db('dbname');
?>
Was bedeutet das und wie kann ich die Nachricht entfernen?
php
mysql
function
deprecated
Mubashar Ahmed Hassan
quelle
quelle
Antworten:
Es gibt einige Lösungen für Ihr Problem.
Der Weg mit MySQLi wäre wie folgt:
Das Ausführen von Datenbankabfragen ist ebenfalls einfach und nahezu identisch mit der alten Methode:
Deaktivieren Sie alle veralteten Warnungen, einschließlich der Warnungen von mysql_ *:
Der genaue Datei- und Zeilenspeicherort, der ersetzt werden muss, lautet "/System/Startup.php> Zeile: 2" error_reporting (E_All); durch error_reporting ersetzen (E_ALL ^ E_DEPRECATED);
quelle
Sie können die Warnung entfernen, indem Sie vor mysql_connect ein '@' hinzufügen.
Verwenden Sie jedoch, wie in der Warnung angegeben, mysqli oder PDO, da die mysql-Erweiterung in Zukunft entfernt wird.
quelle
Um die Verfallsmeldung allein dafür zu unterdrücken (und über andere Verwerfungen in Ihrem Code informiert zu bleiben), können Sie der Verbindung @ voranstellen:
quelle
Veraltete Funktionen in PHP 5.5.x.
Die ursprüngliche MySQL-Erweiterung ist jetzt veraltet und führt
E_DEPRECATED
beim Herstellen einer Verbindung zu einer Datenbank zu Fehlern. Verwenden Sie stattdessen die Erweiterungen ** MYSQLi oder PDO_MySQL . **Syntax:
Auch ersetzen Sie alle
mysql_*
Funktionen inmysqli_*
Funktionenanstatt
quelle
Diese Warnung wird angezeigt, weil eine neue Erweiterung angezeigt wurde. Es wird davon ausgegangen, dass Sie die alte noch verwenden können, aber in einigen Fällen ist dies unmöglich.
Ich zeige Ihnen, wie ich die Verbindung mit der Datenbank herstelle. Sie müssen nur die Werte der Variablen ändern.
Meine Verbindungsdatei: connection.php
Die Erweiterung ändert sich auch beim Ausführen einer Abfrage.
Abfragedatei: "example.php"
Auf diese Weise wird die verbesserte MySQL-Erweiterung verwendet , Sie können jedoch auch PDO (PHP Data Objects) verwenden .
Die erste Methode kann nur mit MySQL-Datenbanken verwendet werden, PDO kann jedoch verschiedene Arten von Datenbanken verwalten.
Ich werde ein Beispiel geben, aber es muss gesagt werden, dass ich nur das erste verwende. Bitte korrigieren Sie mich, wenn ein Fehler vorliegt.
Meine PDO-Verbindungsdatei: "PDOconnection.php"
Abfragedatei (PDO): "example.php"
Zum Schluss sagen Sie einfach, dass Sie die Warnung natürlich ausblenden können, aber das ist keine gute Idee, da Sie in Zukunft Zeit sparen können, wenn ein Fehler auftritt (wir alle kennen die Theorie, aber wenn Sie manchmal viele Stunden arbeiten). Gehirn ist nicht da ^^).
quelle
Dies liegt daran, dass Sie PHP 5.5 verwenden oder Ihr Webserver auf 5.5.0 aktualisiert wurde.
Die
mysql_*
Funktionen sind ab 5.5.0 veraltetSource
quelle
mysql_ * ist ab PHP v5.5.0 offiziell veraltet und wird in Zukunft entfernt.
Verwenden Sie die Funktion mysqli_ * oder pdo
Lesen Sie Oracle Converting to MySQLi
quelle
Es ist nur eine Warnung, die Sie auffordert, neuere Methoden zum Herstellen einer Verbindung zu Ihrer Datenbank zu verwenden, z. B. pdo-Objekte
http://code.tutsplus.com/tutorials/php-database-access-are-you-doing-it-correctly--net-25338
Das Handbuch ist hier
http://www.php.net/manual/en/book.pdo.php
quelle
Die Warnung "veraltet" im Allgemeinen bedeutet, dass Sie versuchen, eine veraltete Funktion zu verwenden. Es bedeutet nicht, dass Ihr Code nicht funktioniert, aber Sie sollten ein Refactoring in Betracht ziehen.
In Ihrem Fall sind die Funktionen mysql_ veraltet. Wenn Sie mehr darüber wissen möchten, finden Sie hier bereits eine gute Erklärung: Warum sollte ich in PHP keine mysql_ * -Funktionen verwenden?
quelle
Dies wird Ihr Problem lösen.
quelle
Die PDO-Klasse ersetzt diese Methoden. Beispiel für MySQL oder MariaDB:
Quelle: gU-Klasse
quelle
Wenn Sie dann Ihre Codierung durchgeführt haben
ist eine gute Option, aber wenn Sie am Anfang sind, sollten Sie auf jeden Fall mysqli verwenden.
quelle
Nun, ich habe mich heute einer solchen Nachricht gestellt, als ich zu einem neuen Hosting gewechselt bin! Trotzdem habe ich versucht, "mySQL" in "mySQLi" zu ändern, aber es funktioniert nicht, also habe ich dies getan:
Der Trick besteht darin, die Fehlerberichterstattung auszuschalten :)
Für PHP 7+ können Sie stattdessen diesen Code verwenden:
Vielen Dank
quelle
ini_set('display_errors', 0); ini_set('log_errors', 1);
. Ich werde die Antwort oben aktualisieren. Vielen Dank.füge dies in deine PHP-Seite ein.
quelle
Hinzufügen eines
@
Werks für mich!Ich habe mit getestet
error_reporting(E_ALL ^ E_DEPRECATED);
quelle