Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result. в чем проблема?

0

Когда я писал код с занятия номер 54(https://fructcode.com/ru/courses/php-and-mysql/video-sql-select/), то виводит даную ошибку "Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\index.php on line 11" при этом у меня есть в базе данных таблица kinomonster и в ней movie.

<?php
  $mysqli= new mysqli('localhost', 'root','','kinomonster');
  if(mysqli_connect_errno()){
    printf('ERROR CONNECTION',mysqli_connect_error());
    exit();
  }
  $mysqli->set_charset('utf-8');

  $query=$mysqli->query("SELECT * FROM movie");

  while ($row =mysqli_fetch_assoc($query)) {
    echo $row['name'];
  }
  $mysqli->close();
?>
php

4 ответов

1

Пару встречных вопросов:

1. База данных точно называется kinomonster?

2. Таблица в базе данных kinomonster точно называется movie, а не movies?

Еще можно просмотр ошибок вставить:

...

  if(mysqli_connect_errno()){
    printf('ERROR CONNECTION',mysqli_connect_error());
    exit();
  }

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // строчка подключения просмотра ошибок

...
1

Ссылка с скриншотом не открывается.

В ошибке говорится, что не существует таблицы movie в базе kinomonster.

Table 'kinomonster.movie' doesn't exist

Попробуй удалить и из базы kinomonster свою таблицу movie и этот дамп в phpmyadmin вставить:

-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- Host: db
-- Generation Time: June 28, 2020 at 01:43 AM
-- Server version: 10.4.6-MariaDB
-- PHP Version: 7.4.4

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `kinomonster`
--

-- --------------------------------------------------------

--
-- Table structure for table `movie`
--

CREATE TABLE `movie` (
  `id` int(5) NOT NULL,
  `name` varchar(255) NOT NULL,
  `descriptions` text NOT NULL,
  `year` int(4) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `movie`
--

INSERT INTO `movie` (`id`, `name`, `descriptions`, `year`) VALUES
(1, 'The Matrix', 'это матрица', 1999);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `movie`
--
ALTER TABLE `movie`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `movie`
--
ALTER TABLE `movie`
  MODIFY `id` int(5) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

0

Fatal error: Uncaught mysqli_sql_exception: Table 'kinomonster.movie' doesn't exist in C:\xampp\htdocs\index.php:10 Stack trace: #0 C:\xampp\htdocs\index.php(10): mysqli->query('SELECT * FROM m...') #1 {main} thrown in C:\xampp\htdocs\index.php on line 10
вот что вывело
и да таблица kinomonster а внутри movie
https://drive.google.com/file/d/10wHaLvBWx4gDdS7cRnQXqiNNDCBp3sZp/view?usp=sharing

1

все, я нашел ошибку 
там был мой косяк я неправильно назвал саму таблицу и из-за этого такие проблемы были
Спасибо Вам огромное что потратили на меня свое время.

Sign up or Log in to write an answer