web-dev-qa-db-fra.com

Erreur fatale: appel de la fonction indéfinie mysql_connect ()

J'ai mis en place PHP, MySQL et Apache. localhost() pour PHP et cela fonctionne bien. Mais après avoir téléchargé MySQL, il indique:

Erreur fatale: appel de la fonction indéfinie mysql_connect ()

Comment puis-je réparer cela?

36
pepsicode

Ouvrez votre terminal et lancez la commande ci-dessous. 

Sudo apt-get install mysql-server

Si vous utilisez PHP, vous devrez également installer le module php pour mysql 5: 

Sudo apt-get install php5-mysql
30
Nanhe Kumar

Utilisez "mysqli_connect"

$con = mysqli_connect("127.0.0.1","root","pass","your_database");

ça va marcher, j'ai résolu mon problème avec ça.

28
user3325593

Si vous obtenez cette erreur après la mise à niveau vers PHP 7.0, vous utilisez des bibliothèques obsolètes. 

mysql_connect - Ouvre une connexion à un serveur MySQL 
Attention 
Ce L'extension était obsolète dans PHP 5.5.0 et supprimée en PHP 7.0.0. À la place, vous devez utiliser l’extension MySQLi ou PDO_MySQL.

Plus ici: http://php.net/manual/en/function.mysql-connect.php

24
argoden

Vérifiez que votre installation de PHP a été compilée avec le support mysql. Créez une page Web de test contenant <?php phpinfo(); exit(); ?> et chargez-la dans votre navigateur. Recherchez la page MySQL. Si vous ne le voyez pas, vous devez recompiler PHP avec le support MySQL, ou réinstaller un paquet PHP intégrant ce dernier.

6
PHP.INI

Vérifiez si vous avez oublié d'activer les options ci-dessous (charge entre autres les modules de mysql):

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"
4
Afser2000

Utilisez .<?php $con = mysqli_connect('localhost', 'username', 'password', 'database'); ?>

Dans PHP 7 . Vous avez probablement PHP 7 dans XAMPP. Vous avez maintenant deux options: MySQLi et PDO.

3
jamaley hussain

J'ai eu le même problème sur RHEL6. Il se trouve que le fichier mysql.ini dans /etc/php.d n’avait qu’un nom de module mais qu’il fallait un chemin complet. Sur mon système RHEL6, l'entrée qui fonctionne est la suivante:

; Enable mysql extension module

extension=/usr/lib64/php/modules/mysql.so

Après avoir modifié le fichier, j'ai redémarré Apache et tout a fonctionné.

2
ArtB

Cette erreur ne vient que pour votre PHP version v7.0 . Vous pouvez les éviter en utilisant PHP v5.0 Else. 

utilise le

mysqli_connect("localhost","root","")

j'ai fait seulement mysqli de mysql

2

Voici une solution rapide:

Tous les pros vont probablement me détester pour cette réponse. Mais j'ai eu la même erreur sur un serveur: Erreur fatale: Erreur non capturée: appel à la fonction non définie mysql_connect () qui utilisait PHP 7. Je n'ai pas eu le temps de réécrire tout le code mysql , correction temporaire si quelqu'un en a besoin est dans CPANEL de rechercher PHP Configuration et de modifier la version de ce compte en quelque chose comme PHP 5.4 au lieu de PHP 7. Ensuite, le code a bien fonctionné sans l'erreur ci-dessus.

1
Jeff Baker

J'utilise Windows 8 Ce problème a été résolu en modifiant les variables d'environnement.

suivez les étapes suivantes: 'C:\php;' OR le chemin d'installation de php.

cliquez sur OK, appliquez les paramètres et redémarrez le système . Cela devrait fonctionner.

1
Bhavye

Une solution pourrait être d’utiliser des fonctions d’adaptateur telles que celles-ci pour commencer à utiliser mysqli au lieu de mysql sur l’ensemble de votre application:

if (!function_exists('mysql_connect')) {
    function mysql_connect($Host = '', $user = '', $password = '', $database = '', $port = 0, $socket = '') {
        return mysqli_connect($Host, $user, $password, $database, $port, $socket);
    }
}


if (!function_exists('mysql_select_db')) {
    function mysql_select_db($link, $dbname) {
        mysqli_select_db($link, $dbname);
    }
}
0
Floris

Ma solution est ici (j'avais juste besoin de supprimer la dernière barre oblique (NB: barres obliques inversées) de PHPIniDir 'c:\PHP\'): Erreur fatale: un appel à la fonction non définie mysql_connect () ne peut pas résoudre

0
Darius Miliauskas

Vérifiez si le module mysqli est installé pour votre version PHP

$ ls /etc/php/7.0/mods-available/mysql*
/etc/php/7.0/mods-available/mysqli.ini /etc/php/7.0/mods-available/mysqlnd.ini

Activer le module

$ Sudo phpenmod mysqli
0
sdaffa23fdsf

Ce code peut vous aider

<?php 

$servername = "localhost";
$username = "root";
$password = "";


$con = new mysqli($servername, $username, $password);

?>

Mais changez les "nom de serveur", "nom d'utilisateur" et "mot de passe"

0