Из-за explode не отображаются данные

Рейтинг: 0Ответов: 1Опубликовано: 06.02.2023

не отображаются данные из-за explode. Я ее использую чтобы разделить запись в таблице "PLAN-1" так как из-за тире sql выдает ошибку.

    <?php
connect();
    $order_sql = $M->query("SELECT * FROM orders WHERE use_id='".$user['id']."' AND type='SERTIFICATE'");
    close();
    $plan = $order_sql->fetch_array();
    $pl = explode("-", $plan['names']);
    connect();
    $data_sql = $M->query("SELECT * FROM usr_ssl WHERE ssl_user_id='".$plan['use_id']."'");
    close();
?>

Ответы

▲ 0

У вас много плохих действий:

  1. Открывать соединение с бд стоит только в самом начале работы всего приложения, закрывать под самый конец. Открывать/закрывать постоянно нельзя у вас во-первых бесполезная нагрузка, во-вторых у вас может нарушиться консистентность данных
  2. Ваша генерация запросов имеет уязвимость SQL-инъекций, поэтому думайте над экранированием и валидацией, а не подставляйте налету значения
  3. Используйте итератор для разбора записей после выполнения запроса
    while ($row = $order_sql->fetch_assoc($result)) {
        echo $row["userid"];
        echo $row["fullname"];
        echo $row["userstatus"];
    }

Хотя бы так. В лучшем случае посмотрите в сторону ORM, для более явного управления сущностями