Запрос к базе данных в сниппете

Наверно это уже заезжена тема, но сколько не ищу не могу реализовать то что нужно. Вроде ничего сложного, но не получается.
У меня есть такой сниппет, Он выбирает данные из таблицы, если есть кука или если нету ее.
Таблица создана мной, для своих целей. Там пользователи с данными
код:
<?php
if(isset($_COOKIE['user'])){
        $idUser =  substr($_COOKIE['user'], 60, -77);
        $link = mysqli_connect(
            'localhost',  /* Хост, к которому мы подключаемся */
            'root',       /* Имя пользователя */
            '',   /* Используемый пароль */
            'lifepoland');     /* База данных для запросов по умолчанию */
        if (!$link) {
            printf("Error connect Date Base", mysqli_connect_error());
            exit;
        }
        if ($result = mysqli_query($link, "SELECT * FROM `diol8wz_my_users_site` WHERE `id`='$idUser'")) {
            while( $row = mysqli_fetch_assoc($result) ){
                $thisNameUser = $row['name'];
            }
            mysqli_free_result($result);
            echo ucwords($thisNameUser);
        }
        mysqli_close($link);
    }
    else {
        echo 'Вход';
    }
Кто подскажет какие есть методы в modx что не прописывать здесь жестко данные подключения к базе.
Есть ли альтернатива mysqli_connect?
Serhii
24 апреля 2020, 14:26
modx.pro
778
0

Комментарии: 4

Артем
24 апреля 2020, 14:51
0
во-первых, какой mysqli в 2020? давно придуман удобный PDO
во-вторых, в MODX принято при создании своих таблиц прописывать схему и работать с таблицей уже через объекты
в-третьих, код выше лучше никому не показывать, во избежание фантомных сердечных приступов
    Serhii
    24 апреля 2020, 17:20
    0
    Спасибо Артем. То что прописывать схему то слыхал, но так как это не правило, а принято, то пока так работает. Так сказать в ознакомительном варианте.
    А вот разобраться как с PDO работать в modx
    Можете хоть самый простой пример привести, как подключится к базе, выбрать данные с n-ой таблицы и вывести на экран, в цыкле
      Артем
      24 апреля 2020, 17:41
      0
      но так как это не правило, а принято
      это вполне себе правило, если хочется работать с таблицей нормально, а не писать сырые запросы

      как подключится к базе
      зачем куда-то подключаться? таблица находится в какой-то внешней бд?
      подозреваю, что она находится в той же самой бд, что и modx, поэтому подключение уже прописано в конфиге

      тут хорошая статья про запросы через pdo
      Serhii
      24 апреля 2020, 17:52
      0
      Спасибо ) разобрался с выводом. Я почему-то даже не подумал что подключения делать то и не нужно
      Вывод решил так:
      $idUser =  substr($_COOKIE['user'], 60, -77);
              $results = $modx->query("SELECT * FROM diol8wz_my_users_site WHERE id=$idUser");
      
              while ($r = $results->fetch(PDO::FETCH_ASSOC)) {
                      if ($r['id'] === $idUser) echo ucwords($r['name']);
              }
      Разберусь как правильно создать таблицу и записывать в нее ( править )
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        4