我有这个问题:
$start = 0;
$number_of_posts = 10;
$sql = $db -> prepare("
SELECT U.username, U.offer_photo, F.activities, A.id_offer, A.offer, A.role, A.content, A.date_post, A.limit, B.type_offer, C.local
FROM type_offer B, local C, offer A
INNER JOIN users U
ON U.id_user = A.company_users_id_user1
INNER JOIN company F
ON F.users_id_user = A.company_users_id_user1
WHERE state = 0
AND
A.type_offer_id_type_offer = B.id_type_offer
AND
A.local_id_local = C.id_local
ORDER BY date_post
DESC LIMIT ?, ?
");
$sql -> bind_param('ii',$start, $number_of_posts);
$sql -> execute();
$sql -> bind_result($username, $offer_photo, $actividades, $id_oferta, $oferta, $cargo, $conteudo, $data_post, $data_limite, $tipo_oferta, $local); //problem here
$sql->fetch();
$sql-close;
我在 phpinfo() 中有 memory_limit: 256M
;但是我仍然遇到内存问题。
我已经尝试过这段代码但没有成功:
set_time_limit(0);
ini_set('memory_limit', '2000M');
所以我的问题是,可以优化查询,或者如何增加内存?我无法访问 php.ini,但我认为 256MB 应该足够了,所以问题可能出在查询上。
最佳答案
u.offer_photo 是 blob 字段吗?如果是这样,我建议重写逻辑,以便在实际显示之前不获取 blob 数据。
即使您可以通过增加分配来绕过内存限制,使用过多的内存既反社会又脆弱,因为将来数据库大小的增加可能会破坏系统。
关于php - Out of memory (allocated 50855936) (试图分配 50331646 字节),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823011/