Uncaught Error: Call to undefined function mysqli_connect()

Résolu
Papita47 Messages postés 16 Date d'inscription jeudi 23 janvier 2025 Statut Membre Dernière intervention 12 février 2025 - Modifié le 29 janv. 2025 à 18:15
Papita47 Messages postés 16 Date d'inscription jeudi 23 janvier 2025 Statut Membre Dernière intervention 12 février 2025 - 12 févr. 2025 à 19:02

Bonjour,

j'ai installé PHP-8.4.3

MySQL-8.0.40

Apache2.4

lorsque j'ouvre une application avec des bases MysQl

lors de la tentative d'ouverture de la base de données avec la commande:

$db = mysqli_connect('localhost', 'root', 'oaxaca', 'archerie_tests');
if (mysqli_connect_errno())
  {
   echo 'Erreur: Connexion impossible à la base: ARCHERIE';
   exit;
  }

la réponse du serveur est:

Fatal error: Uncaught Error: Call to undefined function mysqli_connect() 

j'ai vérifié que 1) la mysqli.dll est bien dans /ext de php

                       2) l'extension mysqli est bien affectée dans le php.ini

                         ;extension=exif      ; Must be after mbstring as it depends on it
                         extension=mysqli
                         ;extension=odbc

Je précise que commee mon pc est isolé j'ai choisi d'utiliser comme fichier php.ini:

   le php.ini de developpement et j'ai retiré de /PHP le php.ini de production que j'ai soigneusement mis de côté au cas ou?

j'ai omis de préciser qu'auparavant toute mon application à été bâtie avec:

PHP 5

MySQL 6

Apache 2.2

A voir également:

8 réponses

jordane45 Messages postés 38415 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 février 2025 4 734
29 janv. 2025 à 19:59

bonjour 

c'est un phpinfo  et montre-nous l chemin du fichier php ini qui est indiqué comme celui qui est utilisé etles informations concernant l'extension mysqli

https://www.php.net/manual/fr/function.phpinfo.php

https://kinsta.com/fr/base-de-connaissances/phpinfo/

au passage, sous quel OS es-tu ?

si jamais tu es sur Windows, plutôt que d'installer chaque ogiciel séparément je t'invite à utiliser un logiciel qui émule directement un serveur web tel que laragon.


0
Papita47 Messages postés 16 Date d'inscription jeudi 23 janvier 2025 Statut Membre Dernière intervention 12 février 2025 2
9 févr. 2025 à 00:04

Bonsoir,

tout d'abord  merci pour les conseils.

un gros progrès dans mon problème de php

j'ai listé les fichiers de php avec leurs extensions et c'est comme çà que j'ai eu la surprise de voir que  le fichier php.ini s'appelait en réalité:

php.ini.ini.de developpement.

je l'ai renommé php.ini il est  concidéré comm efichier de conf.

et dans phpinfo j'ai enfin:

Configuration File (php.ini) Pathno value

Loaded Configuration FileC:\Program Files\PHP8\php.ini

par contre en ce qui concerne le pb de mysqli le mystère reste entier.

Papita47

0
Papita47 Messages postés 16 Date d'inscription jeudi 23 janvier 2025 Statut Membre Dernière intervention 12 février 2025 2
31 janv. 2025 à 14:03

Bonjour

Pour la requête phpinfo(INFO_GENERAL);

dans la réponse j'ai: Configuration File (php.ini) Pathno value

or dans les variables d'environment PHP est bien défini dans le PATH:

C:\Program Files\PHP

dans la requête phpinfo(INFO_MODULES);

j'ai le module mysqlnd de présent

et dans la requête print_r(get_loaded_extensions());

la seule extension présente pour MySQL est :  [22] => mysqlnd

mais dans toutes les requêtes je ne trouve aucune trace de mysqli

0
Papita47 Messages postés 16 Date d'inscription jeudi 23 janvier 2025 Statut Membre Dernière intervention 12 février 2025 2
31 janv. 2025 à 14:07

windows 11

mais Apache fonctionne

Mysql fonctionne

PHP le seul problème c'est l'absence apparente de mysqli

0
Papita47 Messages postés 16 Date d'inscription jeudi 23 janvier 2025 Statut Membre Dernière intervention 12 février 2025 2
Modifié le 9 févr. 2025 à 00:05

Bonjour,

tout d'abord  merci pour les conseils.

un gros progrès dans mon problème de php

j'ai listé les fichiers de php avec leurs extensions et c'est comme çà que j'ai eu la surprise de voir que  le fichier php.ini s'appelait en réalité:

php.ini.ini.de developpement.

je l'ai renommé php.ini il est  concidéré comm efichier de conf.

et dans phpinfo j'ai enfin:

Configuration File (php.ini) Pathno value

Loaded Configuration FileC:\Program Files\PHP8\php.ini

par contre en ce qui concerne le pb de mysqli le mystère reste entier.

Papita47

0

Bonjour,

"Configuration File (php.ini) Pathno value" indique que PHP ne trouve pas de fichier de configuration php.ini

L'exécutable php.exe indiqué dans ta variable d'environnement PATH n'as pas de de rapport avec le fichier de configuration.
La localisation du fichier de configuration php.ini peut être défini via la variable d'environnement PHPRC mais par défaut PHP utilise le fichier php.ini qui se trouve dans le même dossier que l'exécutable php.exe

Il faudrait en savoir plus sur comment a été installé PHP et Apache et quelle est la configuration d'Apache pour pouvoir mieux t'aider.

Si ce n'est pas déjà fait, pense à redémarre Apache lors tu modifies des configurations.

Plus d''infos : https://www.php.net/manual/fr/configuration.file.php

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Papita47 Messages postés 16 Date d'inscription jeudi 23 janvier 2025 Statut Membre Dernière intervention 12 février 2025 2
1 févr. 2025 à 14:27

est-ce que la variable PHPInidir fonctionne bien en Apache2.4?

Quelle que soit la valeur que je lui donne:

# configure the path to php.ini
PHPIniDir "C:/Windows/"

# before PHP 8.0.0 the name of the module was php7_module

LoadModule php_module "C:/Program Files/PHP/php8apache2_4.dll"
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>
 

ou 

PHPIniDir "C:/Program Files/PHP/"

le résultat est le même

le php.ini est présent dans ces 2 diretories

D'autre pert mes aplli développées en PHP5.x fonctionnent bien jusqu'à solliciter l'ouverture d'une base là j'i un message d'erreur sur mysqli_connect() not found

0
Papita47 Messages postés 16 Date d'inscription jeudi 23 janvier 2025 Statut Membre Dernière intervention 12 février 2025 2
1 févr. 2025 à 14:32

je disais donc que le php.ini est dan ces 2 directories et pourtant phpinfo ne le trouve pas.

la vriable PAth users et générale pour PHP est: C:\Program Files\PHP

0
jordane45 Messages postés 38415 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 11 février 2025 4 734
9 févr. 2025 à 00:10

bonsoir, il serait bien que tu nous fasses une capture écran du résultats du PHPinfo.

il faudrait également nous montrer quelles extensions ont été chargées dans ce fichier. 

et enfin, pourquoi ne pas avoir suivi mon conseil qui était d'utiliser un logiciel tel que laragon plutôt que d'essayer d'installer toi-même les différents logiciels sur ton ordinateur. ?

0
Papita47 Messages postés 16 Date d'inscription jeudi 23 janvier 2025 Statut Membre Dernière intervention 12 février 2025 2
12 févr. 2025 à 19:02

 Bonjour

Bonne nouvelle j'ai trouvé la solution en plusieurs points:

j'avais installé PHP sous c: \Program Files \PHP8

lors du passage de la commande php -m mysqli est bien présente mais dans phpinfo(INFO_MODULES) elle n'apparait pas.

j'ai donc fait des recherches avec la fonction  php -i

et là php m'annoncait qu'il ne trouvait ps le module c::/php/ext/mysqli 

j'ai donc créé un répertoire C:\php et j'y ai transféré  le contenu de PHP8

et sur la commande php -i il n'y avait plus d'anaomalie.

j'ai donc relancé mona ppli sql et j'ai eu le même résultat qu'avant à savoir pb avec mysql_connect not found

j'ai alors ouvert le fichier php où je demande l'ouverture de la base de données MySQL et ce programme à été écrit pour du MySQL 6.0 et à cette époque l'ouverture de la base se fasiait :

$db = new mysqli('localhost', 'root', 'oaxaca', 'archerie_tests');

j'ai donc remplacé le 'new  mysqli' par 'mysqli_connect'

et voilà

Contrairement à vous je suis un informaticien de la vieille école, je suis tombé dans la marmite au temps des ordinateurs à lampes et des cartes perforées et comme tous les gens de mon époque on aime bien trouver le pourquoi du comment , quite à se faire aider par la jeune génération quand çà coince trop.

Merci beaucoup pour vos conseils

Papita47

0