Ich habe aptitude install php5-mysql
MySQL / Apache 2 ausgeführt (und neu gestartet), erhalte jedoch immer noch den folgenden 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 analysiert wurde.
php
mysql
ubuntu
mysql-connect
undefined-function
user1765369
quelle
quelle
Antworten:
Nun, das ist deine Chance! Es sieht so aus, als ob PDO bereit ist. Verwenden Sie das stattdessen.
Überprüfen Sie, ob das PHP MySQL-Erweiterungsmodul geladen wird:
<?php phpinfo(); ?>
Wenn es nicht vorhanden ist, fügen Sie der
php.ini
Datei Folgendes hinzu :extension=php_mysql.dll
quelle
mysql_*
Funktionen sind gefährlich und ab PHP 4.1 veraltet. Überprüfen Sie Ihre Apache-Fehlerprotokolle und starten Sie den Server neu. Funktioniert es?Falls Sie bereits PHP7 verwenden, wurden die zuvor veralteten Funktionen
mysql_*
vollständig entfernt. Sie sollten Ihren Code daher stattdessen mit den PDO-Funktionen odermysqli_*
-Funktionen aktualisieren .Wenn das nicht möglich ist, als Abhilfe , habe ich eine kleine PHP - Include - Datei, die die alten nachbildet
mysql_*
Funktionen mitmysqli_*()
-Funktionen: fix_mysql.inc.phpquelle
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:
sudo apt-get install mysql-server mysql-client php5-mysql
Wenn die MySQL-Pakete oder das php5-mysql-Paket bereits installiert sind, werden sie aktualisiert.
AKTUALISIEREN
Da diese Antwort immer noch gelegentlich angeklickt wird, werde ich sie aktualisieren, um PHP 7 einzuschließen . PHP 7 erfordert ein anderes Paket für MySQL, daher sollten Sie ein anderes Argument für den Befehl apt-get verwenden.
sudo apt-get install mysql-server mysql-common php7.0 php7.0-mysql
Und was wichtig ist,
mysql_connect()
ist seit PHP v5.5.0 veraltet. Lesen Sie hier die offizielle Dokumentation: PHP: mysql_connect ()quelle
Wenn jemand mit dem Problem der offiziellen Bilder von Docker PHP hierher gekommen ist , geben 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
(aber es ist ein bisschen schwierig für mich ...).Oder dieses Dokument kann Ihnen helfen.
quelle
mysql
ist was ich willIch hatte auch das gleiche Problem mit undefiniertem MySQL_connect (). Ich habe versucht, Änderungen an der PHP.ini-Datei vorzunehmen, aber es gab mir den gleichen Fehler. Dann kam ich zu dieser Lösung, bei der ich meinen Code von veralteten PHP-Funktionen in neue 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 von alten PHP aktualisieren, müssen Sie
apt-get install php7.0-mysql
quelle
In der Datei php.ini
ändere das
;extension=php_mysql.dll
in
extension=php_mysql.dll
quelle
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:sudo apt-get install mysql-server mysql-client php5-mysql
Stellen Sie außerdem sicher, dass alle folgenden Zeilen irgendwo in Ihrer Datei apache2.conf (oder in Ihrer Datei conf.d / php.ini) von nicht kommentiert sind
;extension=php_mysql.so
zu
extension=php_mysql.so
quelle
Ich vermute, Ihre PHP-Installation wurde nicht mit MySQL-Unterstützung kompiliert.
Überprüfen Sie Ihren Konfigurationsbefehl (
php -i | grep mysql
). Sie sollten so etwas sehen'--with-mysql=shared,/usr'
.Vollständige Anweisungen finden Sie unter http://php.net/manual/en/mysql.installation.php . Ich würde mich jedoch lieber für die von @wanovak vorgeschlagene Lösung entscheiden.
Dennoch denke ich, dass Sie MySQL-Unterstützung benötigen, um PDO verwenden zu können.
quelle
Die Frage ist mit markiert
ubuntu
, aber die Lösung zum Aufheben des Kommentierensextension=mysqli.dll
ist spezifisch für Windows. Ich bin hier verwirrt ?!, sowieso, als erstes laufen<? php phpinfo ?>
undmysql*
unterConfiguration
Überschrift suchen . Wenn Sie so etwas nicht sehen, bedeutet dies, dass Sie es nicht installiert oder aktiviert habenphp-mysql
. Also zuerst installierenphp-mysql
sudo apt get install php-mysql
Dieser Befehl wird
php-mysql
abhängig von derphp
bereits installierten Version installiert, sodass Sie sich keine Sorgen um die Version machen müssen !!Dann kommt die Unix-spezifische Lösung, in der
php.ini
Datei die Zeile auskommentierenextension=msql.so
überprüfen, ob
msql.so
in ist/usr/lib/php/<timestamp_folder>
, ELSEextension=path/to/msql.so
Starten Sie dann endlich die
apache
undmysql
Dienstleistungen, und Sie sollten nun die siehemysql
Abschnitt unterConfigrations
Überschrift inphpinfo page
quelle
Ich habe diesen Fehler erhalten, weil das Projekt, an dem ich gearbeitet habe, auf PHP 5.6 entwickelt wurde und nach der Installation das Projekt nicht auf PHP 7.1 ausgeführt werden konnte.
Nur für alle, die Vagrant mit Ubuntu / nginx verwenden, gibt es im Nginx-Verzeichnis (/ etc / nginx /) ein Verzeichnis mit dem Namen "sites-available", das eine Datei mit dem Namen der für die Vagrant-Maschine konfigurierten URL enthält. In meinem Fall war homestead.app. In dieser Datei gibt es eine Zeile, die so etwas wie sagt
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
Dort können Sie die PHP-Version auf die gewünschte für diese bestimmte Site ändern.
Googelte dies, konnte aber nicht wirklich eine einfache Antwort finden, die besagte, wo man suchen und was man ändern sollte.
Hoffe, dass dies jedem hilft. Vielen Dank.
quelle
Für CentOS 7.8 und PHP 7.3
yum install rh-php73-php-mysqlnd
Und dann Apache / PHP neu starten.
quelle
Wenn Sie den Fehler als erhalten
Bitte melden Sie sich beim cPanel an >> Klicken Sie auf PHP-Version auswählen >> wählen Sie die Erweiterung MYSQL
quelle
Es muss ein Syntaxfehler vorliegen. Kopieren Sie diesen Code / fügen Sie ihn ein und prüfen Sie, ob er funktioniert:
<?php $link = mysql_connect('localhost', 'root', ''); if (!$link) { die('Could not connect:' . mysql_error()); } echo 'Connected successfully'; ?
Ich hatte die gleiche Fehlermeldung. Es stellt sich heraus, dass ich die
msql_connect()
Funktion anstelle von verwendet habemysql_connect()
.quelle
(Windows MySQL-Konfiguration)
Schritt 1: Gehen Sie zu Apache Control Panel> Apache> Config> PHP.ini
Schritt 2: Suchen Sie im Editor (Strg + F) nach:
;extension_dir = ""
(könnte mit a kommentiert werden;
). Ersetzen Sie diese Zeile durch:extension_dir = "C:\php\ext"
(Bitte müssen Sie das;
am Anfang des Satzes nicht entfernen ).Schritt 3: Suchen nach:
extension=php_mysql.dll
und entfernen Sie die;
am Anfang.Schritt 4: Speichern und starten Sie Ihren Apache HTTP Server neu. (Unter Windows erfolgt dies normalerweise über eine Benutzeroberfläche.)
Das ist es :)
Wenn Sie Fehler wegen fehlender
php_mysql.dll
Informationen erhalten, müssen Sie diese Datei wahrscheinlich entweder von der Website php.net oder von pecl.php.net herunterladen. (Bitte sei ursächlich darüber, woher du es bekommst)Weitere Informationen zu PHP: Installation von Erweiterungen unter Windows - Handbuch
quelle
C:\\php
auf dem System vorhanden ist.