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?
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
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.
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
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.
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"
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.
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é.
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
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.
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.
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);
}
}
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
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
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"