@Kristina8787

Не видит базу данных, что делать?

Создала БД на phpmyadmin , пытаюсь подключиться к ней и вывести массивом данные на экран, но сайт выдает ошибку ,что не видит базы с таким названием,пробовала все имена баз,никакую не видит.
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [1049] Unknown database 'mvc_site' in C:\wamp64\www\models\News.php on line 17
PDOException: SQLSTATE[HY000] [1049] Unknown database 'mvc_site' in C:\wamp64\www\models\News.php on line 17

Вот код файла News.php
class News {
    
    public static function getNewsList(){
        //Запрос к БД 
        $host = 'localhost';
        $dbname = 'mvc_site';
        $user = 'root';
        $password = '';
        $db = new PDO ("mysql:host=$host; dbname=$dbname", $user, $password);
        
        $newsList = array();
        
        $result = $db->query('SELECT id, title, date, short_content'
                .'FROM news'
                .'ORDER BY date DESC'
                .'LIMIT 10');
        
        $i=0; 
        while ($row = $result -> fetch()){
            $newsList[$i]['id'] = $row['id'];
            $newsList[$i]['title'] = $row['title'];
            $newsList[$i]['date'] = $row['date'];
            $newsList[$i]['short_content'] = $row['short_content'];
            $i++;
        }
        return $newsList;
    }
}


17 строка это подключение PDO , подсвечивает что имя базы неверное,но все символ в символ идентично. Заранее спасибо за помощь

Обновление: я перенесла проект на open server, теперь базу видит , но не выводит данные таблицы, пишет что ошибка в цикле while , но не понимаю где там ошибка
  • Вопрос задан
  • 6864 просмотра
Пригласить эксперта
Ответы на вопрос 4
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
1. Убедитесь, что на том хосте к которому вы подключаетесь есть база mvc_site
2. Проверьте что в имени БД нет ошибок. Обычно любят c и e кириллические писать, вместо латинских.
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Руки конечно отрывать надо таким видеоучителям.
Весь код здесь - это ад кромешный, и выучиться по нему можно только на никому не нужного говнокодера.

Но к проблеме это отношения не имеет.
Тут либо опечатка в имени БД, либо на компьютере стоит 2 базы данных
Чтобы убедиться в первом надо написать
$pdo = new PDO("mysql:host=$host", $user, $pass);
$dbs = $pdo->query('SHOW DATABASES')->fetchAll();
var_dump($dbs);

и посмотреть что выведет
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
5e5e71a307bdf504142139.pngИмя сервера текущего как то странно выглядит...

PS: проверьте порт своей дб открытой в пхпмайадмине. Есть подозрение что у вас 2 бд запущены на разных портах. Или возможно вы работаете с какими-то виртуалками и попутали машины для подключения.

PPS: Что-то ваши курсы попахивают... Создавать соединение каждый раз когда у вас оно понадобится какой-то модели - жееесть...
Ответ написан
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
скорее всего дело в https://www.php.net/manual/ru/pdo.configuration.ph... . ну и если Вам не сказали pdo для mysql базы это не лучшее решение, лучше смотрите в сторону расширения mysqli
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы