Как я могу сравнить MySQL Versions в PHP?

Хорошо, таким образом, я получаю свой MySQL Version как так:

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

Который дает мне число как: 5.1.36

Это - вся польза. То, что я должен сделать, сравнивают ту версию с другой версией. Я собирался попытаться записать свою функцию для сравнения их, когда я думал version_compare(). Однако после тестирования я стал не уверенным, но возможно я просто не уверен как работа MySQL Version Numbers.

Это - то, что я протестировал:

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

или

5.1.36 < 5.1.4

Я предположил, что это возвратит true, который 5.1.36 меньше чем 5.1.4. Моя причина то есть, я рисунок 5.1.4 на самом деле 5.1.40 не 5.1.04. Возможно, я неправ там.

Таким образом, я думаю неправильно, или функция возвращает неправильный результат?

8
задан Jason Lewis 30 June 2010 в 17:50
поделиться

4 ответа

Функция правильная. Система нумерации - M.m.r, где каждое «число» является десятичным числом.

  • M - основной номер версии
  • m - дополнительный номер версии
  • r - номер ревизии

Таким образом, 5.1.36 будет ревизией 36 второстепенной версии 5.1 ... Следовательно, 5.1.4 будет ревизия 4 (и, следовательно, 36> 4) ...

8
ответ дан 5 December 2019 в 12:54
поделиться
3
ответ дан 5 December 2019 в 12:54
поделиться

http://www.php.net/manual/en/mysqli.get-server-version.php

Метод mysqli get_server_version () вернет версию в виде целого числа.

основная_версия * 10000 + второстепенная_версия * 100 + sub_version (т.е. версия 4.1.0 - это 40100).

2
ответ дан 5 December 2019 в 12:54
поделиться

Я предполагал, что это вернет истину, что 5.1.36 меньше 5.1.4. Мой Причина этого в том, что рисунок 5.1.4 на самом деле 5.1.40, а не 5.1.04. Возможно Я ошибаюсь.

Да, 5.1.36 больше, чем 5.1.4.

0
ответ дан 5 December 2019 в 12:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: