获取带有PDO

时间:2015-08-03 13:13:52

标签: php mysql laravel pdo

我在Laravel 5中构建了一个应用程序,我需要确保我的一个表能够执行FULLTEXT搜索。

我想检测MySQL版本号(确保它至少为5.6.10或更高版本),这样我就可以在我的迁移文件中将引擎切换到MyISAM,如果是条件失败。

我似乎找不到任何关于如何使用PDO访问MySQL服务器信息的文档,这是Laravel开箱即用的。

感谢任何帮助。

4 个答案:

答案 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";
}

有魅力。感谢您的评论。