96 votes

Fonction non définie mysql_connect()

J'ai couru aptitude install php5-mysql (et redémarré MySQL/Apache 2), mais je reçois toujours cette erreur :

Erreur fatale : Appel à une fonction non définie mysql_connect() in /home/validate.php on line 21

phpinfo() dit que le fichier /etc/php5/apache2/conf.d/pdo_mysql.ini a été analysé.

90voto

rubo77 Points 1502

Si vous utilisez déjà PHP7, les anciennes fonctions dépréciées sont les suivantes mysql_* ont été entièrement supprimés, vous devriez donc mettre à jour votre code en utilisant les fonctions PDO ou mysqli_* à la place.

Si ce n'est pas possible, en tant que solution de contournement J'ai créé un petit fichier PHP qui recrée l'ancien système de gestion de l'information. mysql_* fonctions avec mysqli_*() -fonctions : fix_mysql.inc.php

61voto

Sarcastron Points 1374

Je vois que vous avez étiqueté ce sujet avec Ubuntu. Il est fort probable que le pilote MySQL (et éventuellement MySQL) ne soit pas installé. En supposant que vous avez SSH ou un accès terminal et les droits sudo, connectez-vous au serveur et exécutez ceci :

sudo apt-get install mysql-server mysql-client php5-mysql

Si les paquets MySQL ou le paquet php5-mysql sont déjà installés, cela les mettra à jour.


UPDATE

Puisque cette réponse reçoit toujours un clic de temps en temps, je vais la mettre à jour pour y inclure les éléments suivants PHP 7 . PHP 7 nécessite un paquetage différent pour MySQL, vous devrez donc utiliser un argument différent pour la commande apt-get.

# Replace 7.4 with your version of PHP
sudo apt-get install mysql-server mysql-common php7.4 php7.4-mysql

Et surtout, mysql_connect() a été déprécié depuis PHP v5.5.0. Consultez la documentation officielle ici : PHP : mysql_connect()

58voto

wanovak Points 4075

Eh bien, c'est votre chance ! Il semble que AOP est prêt ; utilisez-le à la place.

Essayez de vérifier si le module d'extension PHP MySQL est chargé :

<?php
    phpinfo();
?>

Si ce n'est pas le cas, ajoutez ce qui suit à l'adresse suivante php.ini archivo:

extension=php_mysql.dll

52voto

kujiy Points 1867

Si quelqu'un venait ici avec le problème de docker php images officielles , tapez la commande ci-dessous dans le conteneur docker.

$ docker-php-ext-install mysql mysqli pdo pdo_mysql

Pour plus d'informations, veuillez consulter le lien ci-dessus. How to install more PHP extensions section (Mais c'est un peu difficile pour moi...).

Ou ce doc peut vous aider.

https://docs.docker.com/samples/library/php/

18voto

apurva sharma Points 189

J'étais aussi coincé avec le même problème de MySQL_connect() non défini. J'ai essayé de faire des changements dans le fichier PHP.ini mais cela me donnait la même erreur. Puis j'ai trouvé cette solution où j'ai changé mon code de fonctions php dépréciées à de nouvelles fonctions.

$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.

J'espère que cela vous aidera. Cette solution fonctionne correctement pour moi.

EDIT :

Si vous mettez à jour l'ancien php, vous devez apt-get install php7.0-mysql

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X