PHP输出通过显示SQL表数据的方式终止.似乎也影响插入数据,看起来像是一个限制


PHP output dying part way through displaying SQL table data. Also seems to effect Inserting data, looks like a limit

好吧,我的问题是,在我开始得到一些大查询之前,一切都很好,然后我开始得到这样的结果:

(在此之前的大量列表)

CSP0525-NA/RD-XL        P7700 Adults Bizcool Splice Polo        P7700-NA/RD-XL  $34.50  0   XL  NA/Red
CSP0525-NA/WH-2XL       P7700 Adults Bizcool Splice Polo        P7700-NA/WH-2XL $34.50  0   2XL NA/White
CSP0525-NA/WH-3XL       P7700 Adults Bizcool Splice Polo        P7700-NA/WH-3XL $34.50  0   3XL

请注意,末尾没有颜色,从那以后它已经停止显示了(大约还有200个。它在行中的停止位置根据搜索而不同。

php的内存限制为1024mb,结果没有变化,结果通常在2-3秒内出现,在超时后,这就是错误

调整了超时设置,现在页面没有超时(这不是故障),故障是它在页面上显示了2000行中的大约250行,并暂停。然后它坐在那里无所事事,导致超时。在控制台中,查询运行良好,并显示所有2202行。

10月30日星期四13:47:50.77963 2014][core:error][pid 1604:tid 76](70007)指定的超时已过期:[client 172.16.27.6:1215]AH00574:ap_content_length_filter:apr_bucket_read()失败,referer:indexproducts.php

$sql = "SELECT DueDate, ZProductRank, PRODUCTS.Status, ProductGroup, Price11, QtyOnHand, Barcode, Barcode1, Barcode2, Barcode3, Barcode4, SupplierTitle, SupplierPartNo, UniqueID, PRODUCTS.Zsize, PRODUCTS.ZColour, PRODUCTS.ProductCode, PRODUCTS.ProductTitle FROM PRODUCTS WHERE ".$Where."
ORDER BY ProductCode  ";
$stmt = sqlsrv_query( $conn, $sql );
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
$radio = "<tr><td ><a href='productsearchdetails.php?PCODE=".trim($row['ProductCode'])."&USER=".$User."&USERNO=".$Userno."'>".$Textc."".$row['ProductCode']."</a></td><td>".$Textc."".$rank."</td><td>".$Textc."".$row['ProductTitle']."</td><td>".$Textc."".date_format($row['DueDate'],'d-m-Y')."</td><td>".$Textc."".$row['SupplierPartNo']."</td><td>".$Textc."$".number_format($row['Price11'],2,'.','')."</td><td>".$Textc."".$row['QtyOnHand']."</td><td>".$Textc."".$row['Zsize']."</td><td>".$Textc."".$row['ZColour']."</td></tr>";
echo $radio;
}

您可能正在耗尽PHP可用的内存,我猜您的错误日志中会有这样的消息。您可以通过ini指令"memory_limit"提高内存限制。

SOLVED发现错误日志缓冲区中充满了每行产生的通知,对于很多行,这是很多通知,已经到了php输出一旦满就停止的地步,尽管我还有通知要处理,但现在通知报告已经关闭,工作正常。