MSSQL查询超出了php中允许的内存

时间:2015-03-04 16:09:59

标签: php sql-server

我有一个使用stuff()的查询在PHP中使用时由于内存不足而失败。

此行发生错误;

$data = odbc_exec($conn, $query);

此时php实际上并没有收到任何只是分配网络资源的数据。连接很好,我在其他地方使用它,查询strlen只有~400。

那么这里究竟发生了什么?

select oeename.id, oeename.Name, stuff( 
    (select distinct ', ' + departmentequipment.name from type join DepartmentEquipment on departmentequipmentfk = departmentequipment.id where type.OEENameFK = oeename.ID order by ', ' + departmentequipment.name for xml path('')) ,1,1,'') as departmentequipmentnames 
from oeename order by oeename.name asc

即使我在查询中添加前1,查询仍然超出了内存限制。

编辑:php脚本之前正在运行,有人在我的网站的某个相关部分检测到了一个错误,并且在尝试查找问题时我在本地开发服务器上遇到了这个问题。该表现在部分更大,但它没有执行而不是读取数据。

1 个答案:

答案 0 :(得分:1)

我相信你遇到了这个错误:https://bugs.php.net/bug.php?id=68964

要总结解决方法,您需要将ntext个字段转换为nvarchar(max)