Возможна утечка памяти с подготовленными инструкциями?


Предыстория:

Я пытаюсь изучить подготовленные инструкции, и в этой возникает ошибка, которую я хотел бы узнать, как исправить.

Данные в таблице элементов вводятся пользователями, поэтому я также использую подготовленное заявление для этого, и хорошо... практика, конечно...

Я потратил около часа на поиск этого сайта, и большинство сайтов рекомендуют изменить ограничение памяти на более высокое значение.. Я не думаю, что это потребуется, так как за столом я выбор имеет очень мало строк..

Цель запроса:

Пользователь загружает страницу, и на ней будут перечислены элементы. Отсюда они могут приобрести указанные товары с помощью баллов, которые они получают за участие в программе, которую мы запускаем.. Это запрос для перечисления элементов..

Вот ошибка:

Неустранимая ошибка: Разрешенный объем памяти в 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 */
            }
Author: Jason, 2015-05-08

1 answers

У вас есть столбец blob-объектов? Число 4294967296 указывает на то, что вы пытаетесь выделить память для максимальной длины столбца больших двоичных объектов. Это может быть ошибка, но не утечка, и виновником может быть оператор bind. Если у вас есть столбец больших двоичных объектов, и он продолжает выдавать ошибку, попробуйте привести его к переменной в операторе select.

 1
Author: Tim3880, 2015-05-09 14:48:52