PHPUnit未定义函数mysql_connect()

PHPUnit未定义函数mysql_connect(),php,mysql,phpunit,Php,Mysql,Phpunit,当我尝试从PHP代码连接到我的MySQL数据库时,一切似乎都很好,所有查询都成功执行。但是,当在PHPUnit中使用单元测试测试代码时,我得到以下致命的PHP错误: PHP致命错误:调用未定义的函数mysql\u connect() 如前所述,这段代码在单元测试之外运行良好,但PHPUnit会生成错误。很可能您使用的是一个名称空间,因此mysql\u query或MySQLi在那里没有定义 请尝试以下操作: $mysqli = new \MySQLi(...); 很可能您正在使用一个名称空间,

当我尝试从PHP代码连接到我的MySQL数据库时,一切似乎都很好,所有查询都成功执行。但是,当在PHPUnit中使用单元测试测试代码时,我得到以下致命的PHP错误:

PHP致命错误:调用未定义的函数mysql\u connect()


如前所述,这段代码在单元测试之外运行良好,但PHPUnit会生成错误。

很可能您使用的是一个名称空间,因此
mysql\u query
MySQLi
在那里没有定义

请尝试以下操作:

$mysqli = new \MySQLi(...);

很可能您正在使用一个名称空间,因此,
mysql\u query
MySQLi
在这里没有定义

请尝试以下操作:

$mysqli = new \MySQLi(...);

我相信您正在使用PHP7或更高版本进行测试

在本文中,他们描述了以下内容

警告 该扩展在PHP5.5.0中被弃用,在PHP7.0.0中被删除。相反,应该使用MySQLi或PDO_MySQL扩展。有关更多信息,请参见MySQL:选择API指南和相关常见问题解答。此功能的替代方案包括: mysqli_查询() PDO::query()

因此,有两种可能的解决方案:

  • 将PHP降级到较低版本(<7)
  • 用MySQLi或PDO替换mysql函数

  • 我相信您正在使用PHP7或更高版本进行测试

    在本文中,他们描述了以下内容

    警告 该扩展在PHP5.5.0中被弃用,在PHP7.0.0中被删除。相反,应该使用MySQLi或PDO_MySQL扩展。有关更多信息,请参见MySQL:选择API指南和相关常见问题解答。此功能的替代方案包括: mysqli_查询() PDO::query()

    因此,有两种可能的解决方案:

  • 将PHP降级到较低版本(<7)
  • 用MySQLi或PDO替换mysql函数

  • 您是否使用了两个不同的PHP解释器(可能一个是PHP cli,另一个是PHP cgi)?请停止使用古老的
    mysql.*
    函数编写新代码。它们不再得到维护,社区已开始恢复。相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果您想学习,。只需快速重写mysql_uuu代码,但现在PHPUnit指示以下内容:找不到类'mysqli'。这是一行,其中相当于$mysqli=newmysqli(“example.com”、“user”、“password”、“database”);被执行。我错过什么了吗?我是否需要包含一些文件来使用mysqli?您是否使用了名称空间?可能的重复-请检查这是否回答了您的问题,基本上您的PHP CLI配置没有MySQL您的问题建议。您是否使用两个不同的PHP解释器(一个可能是PHP CLI,另一个可能是PHP cgi)?请停止使用古老的
    mysql.*
    函数编写新代码。它们不再得到维护,社区已开始恢复。相反,你应该学习并使用或。如果你不能决定,将帮助你做出选择。如果您想学习,。只需快速重写mysql_uuu代码,但现在PHPUnit指示以下内容:找不到类'mysqli'。这是一行,其中相当于$mysqli=newmysqli(“example.com”、“user”、“password”、“database”);被执行。我错过什么了吗?我需要包含一些文件来使用mysqli吗?您可能使用了名称空间吗?可能的重复-请检查这是否回答了您的问题,基本上您的PHP CLI配置没有MySQL您的问题建议。不,恐怕这也不是解决方案。同样的错误:(不,恐怕这也不是解决办法。同样的错误:(如果函数实际上是未定义的,那么它很可能是PHP7.0而不是5.5。你可以在5.5或5.6中使用mysql函数,只要你愿意忍受不推荐的警告。但也就是说,长期选项必须从不推荐的函数切换到PDO。没错,Simba,我会编辑它。这个问题e可能与php5 mysql模块的安装有关,如果只安装了php5 common包。如果该函数实际上未定义,那么它可能是PHP7.0而不是5.5。只要您愿意忍受弃用警告,就可以使用5.5或5.6中的mysql funcs。但也就是说,长期选项必须是切换不要使用不推荐的函数,而是使用PDO。没错,Simba,我会编辑它。如果只安装了php5 common包,这个问题可能与php5 mysql模块的安装有关。