Page 1 sur 1

Une fonction if(mysqli actif) ??

Posté : 26 janv. 2009, 15:16
par in4matik
Bonjour.

Je suis en train de développer un "cms" (ou quelquechose qui y correspond, c'est plus un passe temps qu'autre chose...) et je voulais savoir si il existait une condition du type

Code : Tout sélectionner

if (...)// Si mysqli est activé { // execution d'une requete mysqli } else //sinon { // requete mysql }
En effet, chez free, mysqli n'est pas activé et je préfèrerai garder mysqli pour les hébergeurs qui l'acceptent.
Merci pour vos conseils...

Posté : 26 janv. 2009, 15:29
par stopher
Salut ,

Tu peux simplement tester les modules actif de php , via la fonction phpinfo()

phpinfo(INFO_MODULES);
ou simplement avec : get_loaded_extensions()

Posté : 26 janv. 2009, 16:16
par in4matik
Ok.
Mais cela ne me permet pas d'automatiser le choix. Si quelqu'un installe chez un hébergeur qui ne fourni pas mysqli, le site ne fonctionnera pas.

J'en déduis donc qu'il n'est pas possible de trouver une fonction ou une condition pour cela ?

Posté : 26 janv. 2009, 16:23
par Berzemus
Ok.
Mais cela ne me permet pas d'automatiser le choix. Si quelqu'un installe chez un hébergeur qui ne fourni pas mysqli, le site ne fonctionnera pas.

J'en déduis donc qu'il n'est pas possible de trouver une fonction ou une condition pour cela ?
... Ben si.

Si tu as une liste des modules installés, il devient possible de vérifier la présence de l'un ou l'autre module, non ?

Mais il faudra faire la fonction soi-même, c'est vrai..
function test_module($module)
   {
   // si présent
   return true;
   
   // sinon
   return false;
   }

Posté : 26 janv. 2009, 16:32
par Stef
Sinon tu peux demander à l'utilisateur de choisir entre mysqli et mysql lors de l'installation (enfin, pour ce cas j'imagine que tu as créé un formulaire d'installation...)

Posté : 26 janv. 2009, 16:34
par albat
function test_module($module)
   {
   // si présent
   return true;
   
   // sinon
   return false;
   }
Un peu d'élégance, que diantre ! :lol:
function test_module($module)
{ return test_presence($module);         // je te laisse écrire la fonction test_presence()
}

Posté : 27 janv. 2009, 09:51
par in4matik
Salut et merci à tous pour vos réponses :)
Voici la technique la plus simple que j'ai trouvé en cherchant un peu...
if (!extension_loaded('mysqli')) {
//Execution de la requete en mysql.
}
else {
//Execution de la requete mysqli
}
Merci encore pour vos conseils. :D

Edit :Par contre, il faut que je me fasse une fonction pour automatiser le choix, lors d'une requête, parce que faire à chaque fois les deux requetes... Comme par exemple là...
if (!extension_loaded('mysqli')) {//Si la fonction mysqli n'est pas activée on execute la requete en mysql
		$connexion = mysql_connect($mysql['serv'], $mysql['id'], $mysql['mp'], $mysql['db'])or die("Impossible de se connecter à la base de donneés !");
		$rq ="requete d'insertion de donnnées";
		mysql_query($connexion, $rq)or exit(mysql_error());
	}
	else {//Sinon on execute en mysqli
		$connexion = mysqli_connect($mysql['serv'], $mysql['id'], $mysql['mp'], $mysql['db'])or die("Impossible de se connecter à la base de donneés !");
		$rq ="requete d'insertion de donnnées";
		mysqli_query($connexion, $rq)or exit(mysqli_error($connexion));
		
	}
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur][/php]