Возможна утечка памяти с подготовленными инструкциями?
Предыстория:
Я пытаюсь изучить подготовленные инструкции, и в этой возникает ошибка, которую я хотел бы узнать, как исправить.
Данные в таблице элементов вводятся пользователями, поэтому я также использую подготовленное заявление для этого, и хорошо... практика, конечно...
Я потратил около часа на поиск этого сайта, и большинство сайтов рекомендуют изменить ограничение памяти на более высокое значение.. Я не думаю, что это потребуется, так как за столом я выбор имеет очень мало строк..
Цель запроса:
Пользователь загружает страницу, и на ней будут перечислены элементы. Отсюда они могут приобрести указанные товары с помощью баллов, которые они получают за участие в программе, которую мы запускаем.. Это запрос для перечисления элементов..
Вот ошибка:
Неустранимая ошибка: Разрешенный объем памяти в 201326592 байта исчерпан (пытался выделить 4294967296 байт) в (Удален, но является местоположением файла) в строке 80
Строка 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 */
}
1 answers
У вас есть столбец blob-объектов? Число 4294967296 указывает на то, что вы пытаетесь выделить память для максимальной длины столбца больших двоичных объектов. Это может быть ошибка, но не утечка, и виновником может быть оператор bind. Если у вас есть столбец больших двоичных объектов, и он продолжает выдавать ошибку, попробуйте привести его к переменной в операторе select.