Version complète: sur le forum Webmaster Hub : Récupérer la version de mysql en php
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Patrick
Coucou,

j'aurai besoin de récupérer la version de MySQL de mon serveur à partir d'un script en PHP pour faire un test de compatibilité.

J'essaie le code ci-dessous mais la variable $version[0] est systématiquement vide ($version est un tableau) !

CODE
preg_match('/[0-9]\.[0-9]+\.[0-9]+/', shell_exec('mysql -V'), $version);


Si vous avez une idée je suis preneur smartass.gif

Merci

++

Patrick
captain_torche
Que te renvoie shell_exec('mysql -V') ?
Patrick
Arf judicieux !
ben rien justement, nada, que du vide !

Une idée ?

++

Patrick
KaRaK
Hello

Si tu peux lancer une requête en php :

CODE
SELECT VERSION();


(apparemment tu ne peux pas, mais au cas où wink.gif )
Patrick
Apparemment j'ai pas les droits pour lancer une requête shell.
Sur mon dédié c'est un comble IMSTP1.gif

Bon je vais devoir faire appel ou Gourou des lieux pour voir si ça vient bien de ça. Dan tu es là ?
Sinon si vous savez ce qu'il faut modifier pour avoir le droit de le faire, je suis partant 1eye.gif

Bon sinon il y a mysql_get_client_info() qui retourne le client mysql, mais ça ne me donne pas la version de MySQL, à moins que ça ne soit lié et dans ce cas ça me va.
Z'en pensez quoi ?

++

Patrick
Kioob
De toutes façons le serveur MySQL est bien souvent sur une machine différente, et dans ce cas il n'y a que la méthode indiquée par KaRaK qui fonctionnera.

D'ailleurs l'exécutable "mysql", c'est aussi le client MySQL. Il n'est pas forcément installé et ce n'est pas forcément la même version que le serveur.
Patrick
Oki Kioob et merci pour la remarque.
Le test est destiné uniquement à des serveurs dédiés en vu d'y installer un script. Le script ne nécessitant pas des ressources assez élevées pour justifier l'usage d'un serveur dédié supplémentaire à l'usage MySQL la question ne devrait jamais se poser.
Au pire je vais utiliser la fonction php mysql_get_server_info() qui a l'inconvénient d'exiger une connexion à la base avant.
Si je trouve mieux je vous le dirai.

++

Patrick
Dan
Remplace
CODE
shell_exec('mysql -V')

par
CODE
shell_exec('/usr/local/mysql/bin/mysql -V')

wink.gif

Dan

Ps1: pour information, mysql_get_client_info() retourne bien la bonne valeur, vu que le client et le serveur sont sur la même b&cane (et ont la même version bien sûr)
Ps2: tu as bien accès au shell_exec, vu que tu n'es pas en safe_mode wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.