Une fonction if(mysqli actif) ??

Petit nouveau ! | 3 Messages

26 janv. 2009, 15:16

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

ViPHP
ViPHP | 1136 Messages

26 janv. 2009, 15:29

Salut ,

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

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

Petit nouveau ! | 3 Messages

26 janv. 2009, 16:16

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 ?

ViPHP
ViPHP | 4039 Messages

26 janv. 2009, 16:23

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;
   }
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 447 Messages

26 janv. 2009, 16:32

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...)
Probably (only a) Human Problem?

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

26 janv. 2009, 16:34

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()
}

Petit nouveau ! | 3 Messages

27 janv. 2009, 09:51

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]