За последние 24 часа нас посетили 20297 программистов и 1331 робот. Сейчас ищут 714 программистов ...

PDO Подготовка запроса к базе данных

Тема в разделе "PHP для новичков", создана пользователем SBAlex, 20 апр 2022.

  1. SBAlex

    SBAlex Новичок

    С нами с:
    20 апр 2022
    Сообщения:
    22
    Симпатии:
    1
    Всем привет. Изучаю сейчас php pdo и подготовленные запросы к базе MySQL. Столкнулся с некоторыми проблемами в понимании.

    Есть у меня код который делал выборку с помощью MySQLi в зависимости от значений переменных. Хочу переделать его под PDO чтобы были подготовленные запросы.

    PHP:
    1. if ($stream_id!='' && $stream_id!='0') {$add_where.= " AND `id`='$stream_id' ";}
    2. if ($user_id!='' && $user_id!='0') {$add_where.= " AND `user_id`='$user_id' ";}
    3. if ($offer_id!='' && $offer_id!='0') {$add_where.= " AND `offer_id`='$offer_id' ";}
    4.  
    5. $sql_streams = "SELECT * FROM `streams` WHERE TRUE $add_where ";
    6. $result_streams = $mysqli->query($sql_streams);
    У меня получается вот такая конструкция:

    PHP:
    1. if ($stream_id!='' && $stream_id!='0') {$add_where.= " AND `id`='$stream_id' ";}
    2. if ($user_id!='' && $user_id!='0') {$add_where.= " AND `user_id`='$user_id' ";}
    3. if ($offer_id!='' && $offer_id!='0') {$add_where.= " AND `offer_id`='$offer_id' ";}
    4.  
    5. $stmt = $pdo->prepare("SELECT*FROM streams WHERE TRUE $add_where");
    6. $stmt->execute();
    Мне крайне важно чтобы запрос зависел от значений переменных. При этом я понимаю что подготовки у меня не происходит, но как правильно разрулить вопрос не понимаю. Готовых примеров в интернет не нашел. Буду признателен за содействие.
     
  2. antoniii

    antoniii Новичок

    С нами с:
    16 мар 2022
    Сообщения:
    417
    Симпатии:
    71
    PHP:
    1. $stmt = $pdo->prepare("SELECT*FROM streams WHERE  field_name LIKE ?");
    2. $stmt->execute($add_where);
    Вот как то так.