Ich bin gerannt aptitude install php5-mysql (und MySQL/Apache 2 neu gestartet), aber ich erhalte immer noch diesen Fehler:
Schwerwiegender Fehler: Aufruf der undefinierten Funktion mysql_connect() in /home/validate.php in Zeile 21
phpinfo() sagt, dass die Datei /etc/php5/apache2/conf.d/pdo_mysql.ini geparst wurde.
Wie wäre es mit anderen eingebauten PHP/MySql-Funktionen? Arbeiten Sie?
– Samayo
11. Dezember 2012 um 17:16 Uhr
Vielleicht nicht, da ich versucht habe, einen falschen Benutzer/Pass einzugeben, und meine ‘or die’-Anweisung nicht angezeigt wird!
– Benutzer1765369
11. Dezember 2012 um 17:22 Uhr
rubo77
Falls Sie PHP7 bereits verwenden, die ehemals veralteten Funktionen mysql_* wurden vollständig entfernt, daher sollten Sie Ihren Code mit den PDO-Funktionen oder aktualisieren mysqli_* funktioniert stattdessen.
Wenn das nicht möglich ist, als Problemumgehunghabe ich eine kleine PHP-Include-Datei erstellt, die die alte nachbildet mysql_* funktioniert mit mysqli_*()-Funktionen: fix_mysql.inc.php
Perfekte Lösung für meinen Fall, ich konnte noch nicht einfach upgraden und meinen gesamten vorhandenen Code beschädigen. Die globale $con-Variable in Ihrer Datei war jedoch ein Problem, da die enthaltene Datei die globale Variable der übergeordneten Klasse nicht lesen konnte, in deren Konstruktor ich sie eingefügt habe. Ich habe jedoch bei Bedarf einfach eine Verbindungsvariable in den Funktionen der enthaltenen Datei erstellt. Jetzt funktioniert mein Code einwandfrei. Danke.
– Zeeshan
1. Januar 2018 um 10:04 Uhr
Danke … es hat mir das Leben gerettet, als die Produktion auf php7 aktualisiert wurde und die php5-Anwendung zusammenbrach
– geekonweb
5. April 2019 um 1:47 Uhr
Dies ist eine großartige Problemumgehung, um Zeit zu sparen, wenn Sie eine alte PHP-Anwendung aktualisieren müssen. Danke vielmals.
– Joel Karunungan
19. April 2020 um 11:22 Uhr
Sarcastron
Ich sehe, dass Sie dies mit Ubuntu markiert haben. Höchstwahrscheinlich ist der MySQL-Treiber (und möglicherweise MySQL) nicht installiert. Angenommen, Sie haben SSH oder Terminalzugriff und sudo-Berechtigungen, melden Sie sich beim Server an und führen Sie Folgendes aus:
Wenn die MySQL-Pakete oder das Paket php5-mysql bereits installiert sind, werden sie dadurch aktualisiert.
AKTUALISIEREN
Da diese Antwort immer noch gelegentlich angeklickt wird, werde ich sie aktualisieren, um sie einzuschließen PHP7. PHP 7 erfordert ein anderes Paket für MySQL, daher sollten Sie ein anderes Argument für den Befehl apt-get verwenden.
# Replace 7.4 with your version of PHP
sudo apt-get install mysql-server mysql-common php7.4 php7.4-mysql
Und was wichtig ist, mysql_connect() ist seit PHP v5.5.0 veraltet. Siehe die offizielle Dokumentation hier: PHP: mysql_connect()
Ich erhalte Paket php7.0 kann nicht gefunden werden
– seltsame Zeiten
28. Mai 2017 um 22:24 Uhr
Ersetzen Sie 7.0 durch 7.3
– rubo77
27. Mai 2020 um 16:38 Uhr
bei mir war es: sudo apt-get install php7.4-mysql && sudo service apache2 restart
– Laurent Debricon
24. Februar 2021 um 16:51 Uhr
wanovak
Nun, das ist Ihre Chance! Es sieht aus wie PDO ist bereit; benutze das stattdessen.
Versuchen Sie zu überprüfen, ob das PHP-MySQL-Erweiterungsmodul geladen wird:
<?php
phpinfo();
?>
Wenn es nicht vorhanden ist, fügen Sie Folgendes hinzu php.ini Datei:
extension=php_mysql.dll
Ist dies ein besserer Weg, um eine Verbindung zu einer Datenbank herzustellen? Ich werde es mir ansehen, aber ich würde es wirklich gerne zuerst zum Laufen bringen, da es zuvor funktioniert hat, bis ich auf einen neuen Server umgezogen bin.
– Benutzer1765369
11. Dezember 2012 um 17:15 Uhr
Es ist. mysql_* Funktionen sind gefährlich und seit PHP 4.1 veraltet. Überprüfen Sie Ihre Apache-Fehlerprotokolle und starten Sie den Server neu. Funktioniert es?
– wanovak
11. Dezember 2012 um 17:16 Uhr
Ich verwende xampp, nachdem ich diese Zeile zu php.ini hinzugefügt habe, erhalte ich die folgende Meldung in Apache error.log Dynamische Bibliothek ‘\\xampp\\php\\ext\\php_mysql.dll kann nicht geladen werden
– 0x777
9. Januar 2016 um 1:17 Uhr
@defmx Existiert die DLL-Datei unter diesem Pfad? Wenn nicht, müssen Sie es installieren.
– wanovak
18. Januar 2016 um 21:26 Uhr
kujiy
Falls hier jemand mit dem Problem käme docker php offizielle bildergeben Sie den folgenden Befehl in den Docker-Container ein.
$ docker-php-ext-install mysql mysqli pdo pdo_mysql
Weitere Informationen finden Sie unter dem obigen Link How to install more PHP extensions Abschnitt (Aber es ist ein bisschen schwierig für mich …).
Ich hatte auch das gleiche Problem mit undefined MySQL_connect(). Ich habe versucht, Änderungen in der PHP.ini-Datei vorzunehmen, aber es gab mir den gleichen Fehler. Dann kam ich zu dieser Lösung, wo ich meinen Code von veralteten PHP-Funktionen zu neuen Funktionen änderte.
$con=mysqli_connect($host,$user,$password);
mysqli_select_db($con,dbname);
//To select the database
session_start(); //To start the session
$query=mysqli_query($con,your query);
//made query after establishing connection with database.
Ich hoffe, dies wird dir helfen . Diese Lösung funktioniert bei mir richtig.
BEARBEITEN:
Wenn Sie ein Upgrade von altem PHP durchführen, müssen Sie dies tun apt-get install php7.0-mysql
Peter Mortensen
Versuchen:
<?php
phpinfo();
?>
Führen Sie die Seite aus und suchen Sie nach mysql. Wenn nicht gefunden, führen Sie Folgendes in der Shell aus und starten Sie den Apache-Server neu:
Wie wäre es mit anderen eingebauten PHP/MySql-Funktionen? Arbeiten Sie?
– Samayo
11. Dezember 2012 um 17:16 Uhr
Vielleicht nicht, da ich versucht habe, einen falschen Benutzer/Pass einzugeben, und meine ‘or die’-Anweisung nicht angezeigt wird!
– Benutzer1765369
11. Dezember 2012 um 17:22 Uhr