2010-06-30 5 views
8

Ok, donc j'obtenir ma version MySQL comme ceci:Comment puis-je comparer les versions de MySQL en PHP?

preg_replace('#[^0-9\.]#', '', mysql_get_server_info()); 

Ce qui me donne un certain nombre comme: 5.1.36

C'est tout bon. Ce que je dois faire, c'est comparer cette version avec une autre version. J'étais sur le point d'essayer d'écrire ma fonction pour les comparer, quand j'ai pensé à version_compare(). Cependant, lors des tests, je suis devenu incertain, mais peut-être que je ne suis pas sûr de savoir comment fonctionnent les numéros de version MySQL.

C'est ce que je l'ai testé:

version_compare('5.1.36', '5.1.4', '<');

ou

5.1.36 < 5.1.4

Je suppose que cela retournerait vrai que 5.1.36 est inférieur à 5.1.4. Ma raison pour cela, je figure 5.1.4 est en fait 5.1.40 pas 5.1.04. Peut-être que j'ai tort là-bas. Alors, est-ce que je me trompe, ou est-ce que la fonction renvoie le résultat incorrect?

Répondre

8

La fonction est correcte. Le système de numérotation est M.m.r où chaque "nombre" est un nombre décimal.

  • M est le numéro de version
  • m est le numéro de version mineure
  • r est le numéro de révision

Donc 5.1.36 serait révision 36 de la version 5.1 mineure .. . Par conséquent, 5.1.4 serait révision 4 (et donc 36> 4) ...

+0

excellent. Cela résume très bien pour moi. Quelque chose de totalement nouveau pour moi. Merci beaucoup ircmaxell. :) –

-1

Je supposais que cela retournerait vrai, que 5.1.36 est inférieur à 5.1.4. Mon raison pour cela est, je figure 5.1.4 est effectivement 5.1.40 pas 5.1.04. Peut-être Je me trompe là-bas.

Oui, 5.1.36 est supérieur à 5.1.4.