Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result. в чем проблема?
Когда я писал код с занятия номер 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();
?>
4 ответов
Пару встречных вопросов:
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); // строчка подключения просмотра ошибок
...
Ссылка с скриншотом не открывается.
В ошибке говорится, что не существует таблицы 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 */;
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
все, я нашел ошибку
там был мой косяк я неправильно назвал саму таблицу и из-за этого такие проблемы были
Спасибо Вам огромное что потратили на меня свое время.