我正在尝试学习准备好的语句,而这个是我想学习如何修复的错误。
Item表中的数据是由用户输入的,这也是我为这个使用准备好的声明的原因,以及当然的实践......
我花了大约一个小时搜索这个网站,大多数网站都建议将内存限制更改为更高的值。我不认为这是必需的,因为我选择的表只有很少的行.. < / p>
用户加载页面,它将列出项目。从这里他们可以通过参与我们运行的程序获得他们获得的积分。这是列出项目的查询..
致命错误:允许的内存大小201326592字节耗尽(尝试分配4294967296字节)在第80行(已删除,但是文件的位置)
$Select_stmt2->bind_result($Item_Key, $Item_Image, $Item_Name, $Item_Amount, $Item_Describe);
$ conn变量也是在标头期间从第二个configure.php文件中提取的。我将显示它减去连接到服务器的信息。
//Connect to Database
$conn = new mysqli('localhost', 'Username', 'Password', 'Table Name');
//Item Points
$Enabled = 'Enabled';
$Select_Query2 = "SELECT Item_Key, Item_Image, Item_Name, Item_Amount, Item_Describe FROM Item WHERE Item_Status = ?";
$Select_stmt2 = $conn->prepare($Select_Query2);
$Select_stmt2->bind_param('s',$Enabled);
$Select_stmt2->execute();
$Select_stmt2->bind_result($Item_Key, $Item_Image, $Item_Name, $Item_Amount, $Item_Describe);
if(!$Select_stmt2)
{
echo'Error: Selecting Items';
}
else
{
/* Code to display the data for line 80 on the website */
}
答案 0 :(得分:1)
你有blob专栏吗?数字4294967296表示您正在尝试为blob列的最大长度分配内存。它可能是一个bug而不是泄漏,罪魁祸首可能是绑定语句。如果你有一个blob列并且它一直给出错误,请尝试在select语句中将它转换为varchar。