harristars Ответов: 2

: Mysql_fetch_assoc() ожидает, что параметр 1 будет ресурсом, логическим значением, заданным в


: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in
C:\xampp\htdocs\sites\admin_panel\admin\base\load_data.php

в <предыдущая&ГТ;этот load_data.php файл </пред&ГТ;

Что я уже пробовал:

в <предварительно&ГТ; &ЛТ;?в PHP
//Добавить потерянный _ элемент...

$запрос = "выбрать максимум(item_id) от lost_items_table";
$returnD = mysql_query($query);
$result = mysql_fetch_assoc($returnD);
$maxRows = $result['Max(item_id)'];
if(empty($maxRows)){
$lastRow = $maxRows = 1001;
}еще{
$lastRow = $maxRows + 1 ;
}

if(isset($_REQUEST['additem'])){

$item_id = $_REQUEST['item_id'];
$item_name = $_REQUEST['item_name'];
$description = $_REQUEST['описание'];
$item_category = $_REQUEST['item_category'];
$pic = $_REQUEST['pic'];

если(!пустой($item_id) &&усилителя; !пустой($item_name) &&усилителя; !пустой($item_category)){

if($maxRows){

$query = "вставить в lost_items_table(item_id,item_name,description,item_category,pic) значения('$item_id','$item_name','$description','$item_category','$pic')";
mysql_query($запроса);
$errorMsg = "данные успешно добавлены.";

$запрос = "выбрать максимум(item_id) от lost_items_table";
$returnD = mysql_query($query);
$result = mysql_fetch_assoc($returnD);
$maxRows = $result['Max(item_id)'];
if(empty($maxRows)){
$lastRow = $maxRows = 1001;
}еще{
$lastRow = $maxRows + 1 ;
}
}
еще{
$errorMsg = "таблица пуста.";
}

}
еще{
$errorMsg = "пожалуйста! Введите в пустое поле.";
}

включить("add_lostitem.php");
}
?>

2 Ответов

Рейтинг:
2

Jochen Arndt

Это часто задаваемый вопрос (Frequentyl Asked Question), который был задан и на который был дан ответ несколько раз, а также может быть решен путем чтения документации:

значение

Для SELECT, SHOW, DESCRIBE, EXPLAIN и других операторов, возвращающих результирующий набор, mysql_query() возвращает ресурс при успешном выполнении, или ЛОЖНЫЙ при ошибке.

Вы должны проверить возвращаемое значение mysql_query() как показано в примерах по приведенной выше ссылке перед передачей его другим функциям, таким как mysql_fetch_assoc().

При неудачах сообщайте об ошибке, чтобы узнать, что пошло не так. Обычными источниками ошибок являются недопустимые команды SQL и сообщение, предоставляемое mysql_error() расскажу вам, что было не так.

Поскольку я не знаю о вашей базе данных, я могу только догадываться здесь. SQL-запрос, выбирающий максимальное значение. ID выглядит нормально при условии, что столбец и таблица существуют. Если этот запрос не удался, я ожидал бы, что предыдущий INSERT запрос тоже не удался.


Рейтинг:
2

Patrice T

$query = "Insert Into lost_items_table(item_id,item_name,description,item_category,pic) Values('$item_id','$item_name','$description','$item_category','$pic')";

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? - Обмен Стеками Информационной Безопасности[^]