проблема с подключением к БД через PDO и инклуд

saifuddin

Новичок
Всем привет.
Сам я только начинаю заниматься php программированием. И, хотелось бы получить совет от тех, кто уже с этим сталкивался. Я хочу использовать MVC. Но, для начала не могу разобраться с подключением к БД. Пока делаю без ООП, так как с ним будет еще сложнее ошибку выявить.
В отдельном файле у меня лежат константы для входа в БД. (Имя хоста, логин, пароль ... )
В другом файле лежит само подключение к БД через PDO
PHP:
           <?php 
include_once 'db_config.php';

     try {
                   
          $link = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_LOGIN , DB_PASSWORD);
          $link->exec("set names utf8"); //Кодировка с БД
          error_reporting(E_ALL);
          echo "работает";        
            $sql = "SELECT * FROM article";
            $result = $link->query($sql);
     
                     
         $link = null;
 } catch (PDOException $e) {
         print "Error: " . $e -> getMessage() . "<br/>";
     
 }       

            ?>
И, собственно сам файл.

PHP:
<?php include_once 'includes/db_connect.php'; ?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Задание 2</title>
</head>
<body>
<?php
            
    echo "<h2>Вывод записей из результата по одной: </h2>";
                     while ($table = $result->fetch(PDO::FETCH_ASSOC)) {
                            echo "{$table['id']}. Автор: {$table['author']}, Заголовок: {$table['topic']}, Текст: {$table['text']}. <br/>";
                        }
 ?>
</body>
</html>
В общем такая проблема:
1. Если я оставлю $sql в index.php, то у меня ни чего не работает.

PHP:
<?php include_once 'includes/db_connect.php'; ?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Задание 2</title>
</head>
<body>
<?php
         $sql = "SELECT * FROM article";
            $result = $link->query($sql);   
    echo "<h2>Вывод записей из результата по одной: </h2>";
                     while ($table = $result->fetch(PDO::FETCH_ASSOC)) {
                            echo "{$table['id']}. Автор: {$table['author']}, Заголовок: {$table['topic']}, Текст: {$table['text']}. <br/>";
                        }
 ?>
</body>
</html>
А, другой файл выглядит так

PHP:
           <?php 
include_once 'db_config.php';

     try {
                   
          $link = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_LOGIN , DB_PASSWORD);
          $link->exec("set names utf8"); //Кодировка с БД
          error_reporting(E_ALL);
          echo "работает";        
            
     
                     
         $link = null;
 } catch (PDOException $e) {
         print "Error: " . $e -> getMessage() . "<br/>";
     
 }       

            ?>
На, экране выбивает, только слово "работает".

Как мне произвести подключение к БД в отдельном файле и потом его вызывать через инклуд, а вот сам индекс файл, пусть он будет за модул представлен, мне в модуле нужно будет некой переменно присваивать запрос SQL и потом его выполнять. Но, я ни как не пойму, как мне это реализовать. Дайте пример или с моим помогите разобраться... Ну, ведь наверняка тут все элементарно, а, вот ни как не разберусь, что к чему!
 
Сверху