【发布时间】:2016-01-28 00:15:38
【问题描述】:
我在使用 mpdf 处理大量数据时遇到了一些问题。
我使用 Codeigniter 作为后端框架,数据库是 SQL Server
我已将内存限制设置为 -1 =====> ini_set('memory_limit', -1);
当我有一个小数据时它可以工作,例如100 行。
但是,现在我有 1000 行,我得到了这个错误
Fatal error: Out of memory (allocated 823394304) (tried to allocate 230352 bytes) in C:\xampp\htdocs\simas\application\third_party\mpdf\mpdf.php on line 14487
我的代码有什么问题?或者如何修复这个 mpdf?
模型中的查询:
SELECT t.tgl_buku as tglbuku, t.kd_brg as kdbarang, b.namabarang, t.no_aset as qty, t.jns_trn, t.rph_aset as jumlah,t.asal_perlh as asal, t.merk_type as merk, t.keterangan, t.no_bukti as nobukti FROM as_transaksi t join ms_barang b on t.kd_brg = b.kdbarang WHERE t.jns_trn like '1%' and year(t.tgl_buku) = '2013' and month(t.tgl_buku) <= 6
视图中的表:
<table width="100%">
<thead>
<tr style="background:#C0C0FF; text-align:center;">
<center>
<td>Tgl Buku</td>
<td>Kd Barang</td>
<td>Nama Barang</td>
<td>Qty</td>
<td>Nilai</td>
<td>Supplier</td>
<td>Merk</td>
<td>Keterangan</td>
</center>
</tr>
</thead>
<?php
if (!empty($isdata)) {
$total=0;
foreach ($isdata as $row) {
$total=$total+($row->jumlah*$row->qty);
echo "<tr>";
echo "<td>". date('d-m-Y',strtotime($row->tglbuku))."</div></td>";
echo "<td>".$row->kdbarang."</div></td>";
echo '<td>'.$row->namabarang."</td>";
echo "<td>".$row->qty."</div></td>";
echo "<td>".$row->jumlah."</div></td>";
echo '<td>'.$row->asal."</td>";
echo '<td>'.$row->merk."</td>";
echo '<td>'.$row->keterangan."</td>";
echo '</tr>';
}
}else{
echo "<tr>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "</tr>";
}
?>
<tr>
<td></td>
<td colspan="3">Total</td>
<td><div align="right"><b><?=convertrp($total);?></b></div></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
请有人帮助我:)
【问题讨论】:
-
“小”技术性。大数据意味着超过 2 亿行。话虽如此,这就是全部代码吗?
-
我的意思是对于这种特殊情况,因为如果打印出来,它将创建大约 2000 页。
标签: php sql codeigniter web mpdf