Получить версию сервера MySQL с PDO

Я создаю приложение в Laravel 5, и мне нужно убедиться, что одна из моих таблиц сможет выполнять поиск FULLTEXT.

Я хотел бы узнать номер версии MySQL (гарантируя, что он по крайней мере 5.6.10 или выше), чтобы я мог переключить движок в MyISAM в файле миграции для данной таблицы, если это условие терпит неудачу.

Кажется, я не могу найти какие-либо документы о том, как обращаться к информации сервера MySQL с помощью PDO, что Laravel использует из коробки.

Любая помощь приветствуется.

Почему бы просто не запустить select version(); запрос, который даст вам правильный результат независимо от того, какой API вы используете?

 echo $pdo->query('select version()')->fetchColumn(); 

бросает мне не одну ошибку

Вы можете использовать PDO::getAttribute(PDO::ATTR_SERVER_VERSION) http://php.net/manual/en/pdo.getattribute.php

Немного улучшенная версия ответа Винса Кронлейна

 function version($min){ $pdo = DB::connection()->getPdo(); $version = $pdo->query('select version()')->fetchColumn(); preg_match("/^[0-9\.]+/", $version, $match); $version = $match[0]; return (version_compare($version, $min) >= 0); } 

Применение:

 if(version('5.7.0')){ //do someting } 

Я написал небольшой метод в файле миграции:

 protected static function version() { $pdo = DB::connection()->getPdo(); $version = $pdo->query('select version()')->fetchColumn(); (float)$version = mb_substr($version, 0, 6); if ($version < '5.6.10') { return false; } return true; } 

Работает в обаянии. Спасибо за комментарии.