Предупреждение: mysqli_fetch_asso c () ожидает, что параметр 1 будет mysqli_result, пока работает запрос - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь вставить новую игру и изображение в свою базу данных, и у меня есть следующий код:

$insert_query = "INSERT INTO Games (name, release_date, description, developer, publisher)
VALUES ('$name', '$release_date', '$description', '$developer', '$publisher')";
$insert = mysqli_query($mysql,$insert_query);

if (!$insert)
{
    echo("Error description: " . mysqli_error($mysql));
}
$row = mysqli_fetch_assoc($insert);
$id = $row['id'];

echo $id;

$newImageName =  "games".$id.".".$imageExt2;
$imageDestination = 'GamePictures/'.$newImageName;
move_uploaded_file($imageTmpName, $imageDestination);
$update_query = "UPDATE Games SET image = '$newImageName' WHERE name = '$name'";

Строка вставляется в базу данных, но я все еще получаю сообщение об ошибке, и это не не печатать сообщение об ошибке. Из-за этой ошибки я также получаю move_uploaded_file: ошибка с ошибкой.

Кто-нибудь знает, как я могу это исправить?

Ответы [ 2 ]

3 голосов
/ 28 января 2020

Вы не можете fetch данные из запроса INSERT; он не предоставляет результирующий набор, только указание истинного / ложного успеха (см. руководство или @BillKarwin). Чтобы добиться того, что (я предполагаю) вы пытаетесь сделать (получить последний идентификатор вставки), просто используйте mysqli_insert_id:

$id = mysqli_insert_id($mysql);
2 голосов
/ 28 января 2020

Прочитайте документацию: https://www.php.net/manual/en/mysqli.query.php

Для успешных запросов SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query () вернет объект mysqli_result. Для других успешных запросов mysqli_query () вернет TRUE.

Поскольку ваш SQL равен INSERT, а INSERT не возвращает результат, эта строка вернет TRUE.

$insert = mysqli_query($mysql,$insert_query);

Логическое значение TRUE не является объектом mysqli_result, поэтому его нельзя использовать в качестве аргумента функции, для которой требуется mysqli_result.

Нет смысла пытаться получить результаты из INSERT в MySQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...