我在Laravel 5中构建了一个应用程序,我需要确保我的一个表能够执行FULLTEXT搜索。
我想检测MySQL版本号(确保它至少为5.6.10或更高版本),这样我就可以在我的迁移文件中将引擎切换到MyISAM,如果是条件失败。
我似乎找不到任何关于如何使用PDO访问MySQL服务器信息的文档,这是Laravel开箱即用的。
感谢任何帮助。
答案 0 :(得分:5)
为什么不运行select version();
查询,无论您使用哪种API,都会为您提供正确的结果?
echo $pdo->query('select version()')->fetchColumn();
答案 1 :(得分:3)
您可以使用PDO::getAttribute(PDO::ATTR_SERVER_VERSION)
http://php.net/manual/en/pdo.getattribute.php
答案 2 :(得分:1)
Vince Kronlein的回答有点改进
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
}
答案 3 :(得分:-1)
我在迁移文件中写了一个小方法:
var gracz = {
N0P: 1,
N1P: 3,
N2P: 0,
(...)
}
function showType(nr)
{
return "gracz.N" + nr + "P";
}
有魅力。感谢您的评论。