Php 允许的内存大小错误

Php 允许的内存大小错误,php,memory,mysqli,Php,Memory,Mysqli,我已经对一只手进行了编程,并将其扔到了主机的服务器上,但这里出现了错误 致命错误:允许的内存大小536870912字节已用尽(尝试分配4294967296字节) 这是我的密码 <?php require 'opsatning/top.php'; ?> <!--[if IE]> <style> .arrow { top: 100%; }; </style> <![endif]--> <div id="content_indhold

我已经对一只手进行了编程,并将其扔到了主机的服务器上,但这里出现了错误

致命错误:允许的内存大小536870912字节已用尽(尝试分配4294967296字节)

这是我的密码

<?php
require 'opsatning/top.php';
?>
<!--[if IE]>
<style>
.arrow { top: 100%; };
</style>

<![endif]-->
<div id="content_indhold">
<?php
        $mysql = connect();
        $stmt = $mysql->prepare("SELECT id,billed_sti,overskrift,indhold,brugernavn,dato FROM nyheder ORDER BY id DESC LIMIT 3");
        $stmt->bind_result($id, $billed_sti, $overskrift, $indhold, $brugernavn, $dato);
        $stmt->execute();


        while($stmt->fetch()) {


?>


<div class="nyhederRamme2">

<h1><a href="vis.nyheder.php?id=<?php echo $id; ?>"><?php echo $overskrift; ?></a><span class="arrow"></span></h1>
<br />


        <a href="vis.nyheder.php?id=<?php echo $id; ?>"><img style="float:left; margin-right:5px;" src="images/nyheder/<?php echo $billed_sti; ?>" /></a>


    <a href="vis.nyheder.php?id=<?php echo $id; ?>"><?php echo substr($indhold,0,700); ?></a>


</div><!-- ramme -->


<?php
}#Lukker while
?>
</div><!-- content_indhold -->
<?php
#require 'opsatning/bund.php';
?>


在我的top.php中没有从数据库中提取内容,所以我不能完全理解它,我从数据库中提取的内容什么都没有

希望知道我做错了什么,或者可以用不同的方式做什么


提前感谢

我唯一能猜到的是,您的indhold字段中有一些非常大的值。是这样吗?如果是这样,看起来您只显示了700个字符,因此您可能希望在查询中只获取这些字符,而不是获取所有字符并仅显示一些字符

SELECT id,billed_sti,overskrift, SUBSTRING(indhold, 0, 700), brugernavn,dato FROM nyheder ORDER BY id DESC LIMIT 3

您似乎也没有使用$brugernavn和$dato变量,因此请从查询中删除这些变量。

从该错误消息中,它正试图执行一次精确4gb的分配。您从MySQL获取的记录集有多大

我觉得奇怪的是,分配量正好是4GB。因此,除非你有一个数据库结果(或文件)的确切大小,否则其他的东西听起来是可疑的。我的意思是,它分配准确数量数据的可能性有多大


您可能应该发布您的全部代码、确切的错误消息以及有关该查询返回的数据集的信息……

您的列之一是LONGBLOB还是LONGTEXT

PHP试图分配足够的内存来容纳该列的最大大小(4294967296字节)。请参见此处(注意页面上的最后一篇帖子):


如果是这种情况,请将该列更改为
MEDIUMTEXT
MEDIUMBLOB
,或更小的列(如果您可以侥幸逃脱)。

即使这是旧列,供将来参考:

在调用
mysqli->bind\u result()
之前,请始终调用
mysqli->store\u result()


然后,PHP知道将接收多少数据,并且只分配那么多内存,而不是分配可能的最大内存。对于LONGTEXT和LONGBLOB,这将是4 GB。

请指出错误发生在哪一行。+1。。。我想说确切的4GB数量听起来像是他达到了某种身体极限,可能是在创建缓冲区或其他什么的时候。这是我从数据库中提取的内容这是我的新闻脚本我已经注释掉了所有的include,所以这只是1个查询,在执行这是我的错误时,我得到了致命错误:允许的内存大小536870912字节耗尽(尝试分配4294967296字节)第16行第16行的/home/public_html/test/nyheder.php中是:$stmt->bind_result($id、$billed_sti、$overskrift、$indhold、$brugernavn、$dato);我帮你可以帮我!您应该在执行后调用
bind\u result
,而不是在。。。我将长文本改为中文本,现在它可以工作了:D!谢谢