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

9voto

fortune Points 1610

Essayez :

<?php
  phpinfo();
?>

Exécutez la page et recherchez mysql . S'il n'est pas trouvé, exécutez la commande suivante dans le shell et redémarrez le serveur Apache :

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

Assurez-vous également que vous avez décommenté toutes les lignes suivantes quelque part dans votre fichier apache2.conf (ou dans votre fichier conf.d/php.ini), de

;extension=php_mysql.so

à

extension=php_mysql.so

7voto

Dans le fichier php.ini

changer ceci

;extension=php_mysql.dll

en

extension=php_mysql.dll

4voto

Muc Points 625

Je pense que votre installation PHP n'a pas été compilée avec le support de MySQL.

Vérifiez votre commande configure ( php -i | grep mysql ). Vous devriez voir quelque chose comme '--with-mysql=shared,/usr' .

Vous pouvez consulter les instructions complètes à l'adresse suivante http://php.net/manual/en/mysql.installation.php . Bien que je préfère opter pour la solution proposée par @wanovak.

Néanmoins, je pense que vous avez besoin du support MySQL pour utiliser PDO.

3voto

Sunny Points 1

La question est étiquetée avec ubuntu mais la solution qui consiste à dé-commenter l'avis d'appel d'offres de l extension=mysqli.dll est spécifique à Windows. Je suis confus ici ?!, de toute façon, la première chose à faire est d'exécuter <? php phpinfo ?> et chercher mysql* sous Configuration tête. Si vous ne voyez pas une telle chose, cela signifie que vous n'avez pas installé ou activé la fonction php-mysql . Alors, installez d'abord php-mysql

sudo apt get install php-mysql

Cette commande installera php-mysql en fonction de la php que vous avez déjà installé, donc pas de soucis pour la version !!.

Vient alors la solution spécifique à unix, dans le fichier php.ini dé-commentez la ligne

extension=msql.so

vérifier que msql.so est présent dans /usr/lib/php/<timestamp_folder> , ELSE

extension=path/to/msql.so

Puis, enfin, redémarrez le apache y mysql et vous devriez maintenant voir le mysql section sous Configrations cap sur phpinfo page

0voto

freifede Points 11

J'ai eu cette erreur parce que le projet sur lequel je travaillais a été développé sur php 5.6 et après l'installation, le projet n'a pas pu fonctionner sur php7.1.

Pour tous ceux qui utilisent Vagrant avec ubuntu/nginx, dans le répertoire nginx(/etc/nginx/), il y a un répertoire nommé "sites-available" qui contient un fichier nommé comme l'url configurée pour le maschine vagrant. Dans mon cas, il s'agit de homestead.app. Dans ce fichier, il y a une ligne qui dit quelque chose comme

    fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;

Vous pouvez y modifier la version de php en fonction de ce que vous souhaitez pour ce site particulier.

J'ai cherché sur Google, mais je n'ai pas trouvé de réponse simple indiquant où chercher et ce qu'il faut changer.

J'espère que cela vous aidera. Merci.

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