Ошибка при выводе, что пропустил?

0

вот код:

<?php

$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');

if(mysqli_connect_errno()) {
prinf("Соединение не установлено", mysqli_connect_error());
exit();
}

$mysqli->mysqli_set_charset('utf8');

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

while ( $row =mysqli_fetch_assoc($query) ) {
echo $row['name'];
}

$mysqli->close();


?>

вот ошибка:

Fatal error: Uncaught Error: Call to undefined method mysqli::mysqli_set_charset() in C:\xampp\htdocs\kinomonster\index.php:10 Stack trace: #0 {main} thrown in C:\xampp\htdocs\kinomonster\index.php on line 10

php

9 ответов

0

У меня php сейчас стоит 7.2, достаточно свежая, все нормально.

Дамп mysql

-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- Host: db
-- Generation Time: Nov 06, 2019 at 01:36 AM
-- Server version: 10.4.6-MariaDB
-- PHP Version: 7.2.14

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 */;

Код:

<?php

    $mysqli = new mysqli('localhost', 'root', '123123', 'kinomonster');

    if(mysqli_connect_errno()) {
        printf("Соединение не установлено", mysqli_connect_error());
        exit();
    }

    $mysqli->set_charset('utf8');

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

    while ( $row = mysqli_fetch_assoc($query) ) {
        echo $row['name'];
    }

    $mysqli->close();

?>

База данных у тебя точно 'kinomonster' называется? Это последний параметр подключения к базе данных:

$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');

У меня ошибка такая была, когда я в подключении к БД просто писал так, без указания базы данных:

$mysqli = new mysqli('localhost', 'root', '123123');
0

Access denied for user 'root'@'localhost' (using password: YES)

пользователь или пароль неверный указан в соединение с вашей базой данных. Проверяйте вашу phpmyadmin внимательно.

0

Как выше уже писали, вам проблема в подключении у вас:

$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');

Вставьте вывод показа ошибок и смотрите, что говорит:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

С вашим кодом это будет так:

<?php

$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');

if(mysqli_connect_errno()) {
printf("Соединение не установлено", mysqli_connect_error());
exit();
}

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli->set_charset('utf8');

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

while ( $row = mysqli_fetch_assoc($query) ) {
echo $row['name'];
}

$mysqli->close();

?>
0

теперь пишет;

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\kinomonster\index.php on line 14

вот код;,

<?php

$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');

if(mysqli_connect_errno()) {
prinf("Соединение не установлено", mysqli_connect_error());
exit();
}

$mysqli->set_charset('utf8');

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

while ( $row =mysqli_fetch_assoc($query) ) {
echo $row['name'];
}

$mysqli->close();


?>


P.S все таки версии отличаются

0

код:

<?php

$mysqli = new mysqli('localhost', 'root', ' ', 'kinomonster');

if(mysqli_connect_errno()) {
printf("Соединение не установлено", mysqli_connect_error());
exit();
}

$mysqli->set_charset('utf8');

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

while ( $row = mysqli_fetch_assoc($query) ) {
echo $row['name'];
}

$mysqli->close();

?>

вывод:

Warning: mysqli::__construct(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\xampp\htdocs\kinomonster\index.php on line 3
Соединение не установлено

P.S 

БД kinomonster

Помогите не могу продолжить обучение!

0

код

<?php

$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');

if(mysqli_connect_errno()) {
printf("Соединение не установлено", mysqli_connect_error());
exit();
}

$mysqli->set_charset('utf8');

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

while ( $row = mysqli_fetch_assoc($query) ) {
echo $row['name'];
}

$mysqli->close();

?>

пишет

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\kinomonster\index.php on line 14

0

уже не знаю, что делать( 

phpmyadmin так же как на видео настроено

0

СПАСИБО ОГРОМНОЕ! 

ВМЕСТО MOVIES. ПИСАЛ  MOVIE

НЕ ВНИМАТЕЛЬНЫЙ!(

0

Вроде так должно быть: 

$mysqli->set_charset("utf8");

Sign up or Log in to write an answer