Php PDOExOption SQLSTATE[HY001]无法分配足够的内存

Php PDOExOption SQLSTATE[HY001]无法分配足够的内存,php,sql-server,php-7,freetds,openvz,Php,Sql Server,Php 7,Freetds,Openvz,当我从php fpm运行以下代码时: $connect = new PDO("dblib:host=mssql.dev.gm.local;dbname=GeoData","username","password"); try{ $s = $connect->query('[RU].GetTownInfo 4368'); var_dump($s->fetch()); }catch (Exception $e){ var_dump($e->getMessa

当我从php fpm运行以下代码时:

$connect = new PDO("dblib:host=mssql.dev.gm.local;dbname=GeoData","username","password");

try{
    $s = $connect->query('[RU].GetTownInfo 4368');
    var_dump($s->fetch());
}catch (Exception $e){
    var_dump($e->getMessage());
}
我得到一个例外:

PDOExOption SQLSTATE[HY001]无法分配足够的内存

但是,当我从php命令行运行相同的代码时,我没有这样的问题

有什么问题吗

我使用nginx代理传递到后端(php-fpm)

要连接到MS SQL Server,我使用Dblib(freetds)。 使用OpenVZ、Nginx和Php-fpm在一台机器上进行的所有工作都是不同的虚拟机


命令行和上游的Php fpm配置是相同的。

系统会告诉您问题,对吗

PDOExOption SQLSTATE[HY001]无法分配足够的内存

因此,您可以尝试通过更改php.ini中的限制来为php提供更多内存:


memory\u limit=128M

问题可能来自php sql扩展。检查php-fpm.ini和php-cli.ini之间的配置差异是否会增加php内存限制?ini_集('内存限制','-1');您还可以在运行脚本时监视服务器上的内存进程。可能您的内存和交换空间都用完了。更改内存限制没有帮助。有高达8Gb的可用内存。错误消息非常错误。如果您查看了sybase和Microsoft文档中有关ODBC的内容,则异常可能是由有问题的ODBC驱动程序、尝试获取不可用的对象、查询不可用的内容等引起的,。。。。它不需要与记忆有关。尝试更新ODBC和库。
内存限制
不会神奇地解决所有内存错误。提出它只是修复了由它自身引起的问题,顺便说一下,这些问题已经被清楚地报告了。此外,我非常确定PHP(-scripts)的内存限制与第三方扩展所消耗的内存无关。