蚌埠網(wǎng)站制作哪家好如何搭建個(gè)人網(wǎng)站
1 錯(cuò)誤由來(lái)
php操作三張表,一張表有近四十萬(wàn)條記錄,另外兩張表記錄數(shù)在三萬(wàn)左右,三張表又關(guān)聯(lián)。應(yīng)用左連接left join。
? ? $qLStr = "select pu.pd_no, pu.common_name, pu.purchase_cost, pu.medication_area, pu.total_dosage, pu.control_object, pu.use_cost, "
?? ? ? ? ? ? ?."pu.farmer_id, pr.pesticide_type, pr.toxicity, pr.content_num, pr.class_type, "
?? ? ? ? ? ? ?."pf.farmer_type "
?? ? ? ? ? ? ?." from pesticide_usedetail as pu "
?? ??? ??? ? ?." left join pesticide_register as pr on pu.pd_no=pr.regist_no "
?? ? ? ? ? ? ?." left join pesticide_farmers as pf on pu.farmer_id=pf.id "
?? ??? ??? ? ?." where pu.dateyear=2022 and pu.crop_id=3"
?? ??? ??? ? ?." order by pu.farmer_id"; ?
但運(yùn)行數(shù)秒后,頁(yè)面即顯示為空白。不顯示記錄,也不顯示記錄數(shù)量。
加error_reporting(-1);
也無(wú)錯(cuò)誤顯示。
2?原因查找
通過(guò)myadmin可以正確運(yùn)行查詢(xún),記錄數(shù)約在9萬(wàn)左右,換另一種crop_id,記錄數(shù)3萬(wàn)多可由php操作查詢(xún)語(yǔ)句正確運(yùn)行。
修改sql語(yǔ)句字段數(shù),減少到8個(gè)字段可開(kāi)始查詢(xún),以為是left join語(yǔ)句的效率問(wèn)題,字段pd_no等連接字段加上索引,但問(wèn)題依舊。
原php語(yǔ)句是在mysql封裝類(lèi)中操作,直接跳過(guò)類(lèi),連接數(shù)據(jù)庫(kù)后,查詢(xún)記錄數(shù)可顯示。但在進(jìn)行
?while($row = $rowLArr->fetch_assoc()){
?? ? ? $rows[] = $row;
?}
操作時(shí),提示
Fatal error: Allowed memory size of? ***bytes exhausted錯(cuò)誤
3 解決方法
查看php.ini文件
memory_limit = 128M
起先原以為這個(gè)夠了,實(shí)際在數(shù)據(jù)量較大時(shí)就出問(wèn)題。
修改為memory_limit = 256M
ok