我有一个PHP脚本,这是以下内容的一部分:
SELECT distinct [ID],[MDate],STUFF((SELECT ',' + CAST(FID AS VARCHAR) FROM [dbo].[tableName] WHERE [MDate] = a.[MDate] and active =1 FOR XML PATH('')),1 ,1 ,'') as FID
FROM [dbo].[tableName] AS a
WHERE active = 1
ORDER BY [MDate]
所以问题是:ob_start()只在error_reporting设置中正常工作:
ID MDate FID
1 2009-03-01 1
1 2009-05-25 1,2
1 2010-02-04 3
在这种情况下,输出为“OK”,但如果我删除error_reporting,则输出“OKtest”。
问题是,我不能在生产网站上留下错误报告,我也无法弄清楚这种情况发生的原因。
可能需要更多信息?!
更新:预期的行为:sctipt以状态200和正文发送响应 - “确定”,关闭连接,然后执行一些内部操作。
答案 0 :(得分:0)
以下代码不使用error_reporting
:
<?php
ob_start();
echo 'OK'; // send the OK response
header('Connection: close');
header('Content-Type: text/html; charset=utf-8');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header("Content-Encoding: none");
header('Content-Length: '.ob_get_length());
echo 'test';
// some further procesiing
exit;
?>
我在你最后一次回音之前删除了这个,
ob_end_flush();
ob_flush();
flush();