使用mysqlnd正确检测PHP 5.5上高于5的mysql

时间:2013-07-18 21:02:41

标签: php mysql mysqli mysqlnd

我的应用程序使用以下代码来检测高于5的mysql。它适用于PHP 5.2,5.3和5.4。

问题在于PHP 5.5默认使用mysqlnd,因此脚本报告mysqlnd 5.0.11-dev - 20120503 - $ Id:40933630edef551dfaca71298a83fad8d03d62d4 $并且无法正确检测MySQL。我需要为这样的版本做一个例外,但我不知道如何。

 echo "<mysql>";
    if(key_exists('mysql', $phpinfo))
    {
        if(key_exists('Client API version', $phpinfo['mysql']))
        {
            $t=explode(".", $phpinfo['mysql']['Client API version']);
            if($t[0]>=5)
                $ok=1;
        else
                $ok=0;
            echo "<val>{$phpinfo['mysql']['Client API version']}</val><ok>$ok</ok>";
        }
        else
           echo "<val></val><ok>0</ok>";
    }
    else
        echo "<val></val><ok>0</ok>";
    echo "</mysql>\n";

2 个答案:

答案 0 :(得分:2)

请使用此SQL命令:

SHOW VARIABLES LIKE "%version%";

会显示如下内容:

enter image description here

答案 1 :(得分:0)

您不应该在5.5中使用mysql。它已被弃用。

mysql_ functions的弃用

  从PHP 5.5.0起,不推荐使用以mysql_开头的PHP函数。如果您有能力这样做,请考虑更新您的代码,以改为使用MySQLiPDO扩展程序。

无论如何,使用mysqli(你似乎在你的问题标签中有)

phpinfo键是:$phpinfo['mysqli']['Client API header version']而不是$phpinfo['mysql']['Client API version']

相关问题