PHP, PDO Подготовленные запросы, EXECUTE vs PREPARE Statement

Поделиться
HTML-код
  • Опубликовано: 3 июл 2024
  • Что такое PREPARE и EXECUTE Statement в чем отличия подготовленных запросов, как с этим работать с PHP и PDO
    00:00 Вступление
    00:24 EXECUTE и PREPARE
    00:50 EXECUTE Statement
    03:08 PREPARE Statement
    07:09 Пример именованные placeholder
    07:53 Пример неименованные placeholder
    08:28 bindParam и bindValue
    12:09 PDO эмулирует подготовленные запросы по умолчанию!!!
    14:20 query использует prepare, а не execute!!!
    15:25 При отключенной эмуляции нельзя сделать выборку по EXECUTE!!!
    16:23 Почему placeholder только для значений
    18:11 Спасибо за внимание
    github.com/smpl/youtube/tree/... примеры кода
    Плейлист: • PHP, PDO Работа с базо...
    www.tinkoff.ru/cf/5c4FFQvrspu
    new.donatepay.ru/@kuvshinovee
    Канал с новостями: t.me/KuvshinovEvgeniy
    Чат с обсуждениями: t.me/dev_ru
  • НаукаНаука

Комментарии • 31

  • @user-uy7zp7jk6k
    @user-uy7zp7jk6k 10 месяцев назад

    Спасибо большое! Пересмотрю ещё ни раз, но и с первого раза сложилось понимание, как это работает и для чего нужно. Отдельное спасибо за нюансы, которые вы проговариваете, это очень ценная информация!

  • @user-nw3iz4bd1b
    @user-nw3iz4bd1b 8 месяцев назад

    Спасибо, ты открыл мне глаза , на многие нюансы знаю ответы теперь. Лайк за труд

  • @topalek
    @topalek 2 года назад

    Евгений, спасибо большое за видео!!!

  • @user-bb9hk7dd4b
    @user-bb9hk7dd4b 2 года назад +1

    Спасибо большое!)

  • @bettingismylife5617
    @bettingismylife5617 2 года назад +2

    Спасибо огромное, столько нового узнал из видео.

  • @denislukanin347
    @denislukanin347 2 года назад +4

    очень годный плейлист! Спасибо!

    • @kuvshinovee
      @kuvshinovee  2 года назад +2

      это еще не оконченный плейлист
      будет еще минимум 2 видео в этом плейлисте

  • @timqa
    @timqa 2 года назад

    лайк, не глядя ставлю уже) знаю, что будет интересно)

  • @andreyblokhin6195
    @andreyblokhin6195 Год назад

    Видео классные. Жаль, что комментов мало.

  • @user-qg5uh6vf1v
    @user-qg5uh6vf1v Год назад +1

    Крутяцкий канал. Жаль что это крайнее видео( Прям грустно

    • @kuvshinovee
      @kuvshinovee  Год назад +1

      Этот плейлист будет продолжен ещё 2 видео минимум в нем будет

    • @user-qg5uh6vf1v
      @user-qg5uh6vf1v Год назад

      @@kuvshinovee Слышал об этом в прошлом ролике. Думал ты уже забил на него

  • @user-nj3ho3uq4h
    @user-nj3ho3uq4h Год назад

    Отлично! Всё понятно, даже объяснили как работаю кишки). Только в конце не понятно, нужно новый видос про свинью и как это может отразиться на нас, По буквам буквально

    • @kuvshinovee
      @kuvshinovee  Год назад +1

      плейлист не закончен
      что касается свиньи рассказывать о ней отдельно не имеет смысла, просто это некая микро оптимизация когда хочется сделать запрос по execute, но этого не получается сделать так как эмуляция отключена и у pdo остается только один метод exec, в котором нет возможности получить результат, я обычно такую проблему решаю с помощью двух подключений, одно подключение у которого эмуляция отключена (оно по умолчанию), а если надо выполнить методом execute то использую другое подключение, но справедливости ради такое встречается крайне редко и это микро оптимизация которая далеко не всегда стоит затраченного времени.
      плейлист по pdo планирую продолжать

    • @user-nj3ho3uq4h
      @user-nj3ho3uq4h Год назад

      @@kuvshinovee Есть у меня такой вопрос. В таблице у меня 366 столбца. В пдо название таблицы не сделать через bind., только через переменную. Тойсть нужно биндить все 366 столбца или пускать через цикл по одному столбцу 366 раз и в переменную вставлять название столбца что не безопасно и будет грузить сервер неплохо

    • @kuvshinovee
      @kuvshinovee  Год назад

      @@user-nj3ho3uq4h не совсем понял вопрос.
      1. у вас есть таблица у которой 366 колонок ?
      2. вы хотите название этой таблицы задавать через bind ? так естественно нельзя, нафига такое ?
      3. насчет нагрузки сервера я думаю это преувиличено это не сильно "загрузит сервер", но если вы этого боитесь тут есть собственно два пути:
      1. Выбирать только те колонки что запросил пользователь (кстати говоря не самая лучшая стратегия с точки зрения кэширования)
      2. Выбирать все 366 столбцов и отдавать во фронт их
      3. Выбирать все 366 столбцов и потом из этого результата выбирать уже только те столбцы что запросил пользователь
      неплохо знать в этих столбцах много ли информации содержится? чтобы размер ответа не превышал 100кбайт

    • @user-nj3ho3uq4h
      @user-nj3ho3uq4h Год назад

      @@kuvshinovee Да есть таблица у которой 366 колонок. Я хотел название одной колонки одной задать через bind в итерации цикла, но нельзя названия так делать, можно только через переменную. В запросе может быть разное количество колонок быть вплоть до 366 штук. У каждой колонки значение - цифра 8 знаков.

  • @user-iy5sn5bt5k
    @user-iy5sn5bt5k 2 года назад

    Годно давай про ооп или про циклы масивы многим будет интересно

    • @kuvshinovee
      @kuvshinovee  2 года назад +2

      про ооп расказывать что такое private, protected, extend и тд есть в документации, про паттерны тоже есть хорошие материалы refactoring.guru/
      циклы, массивы это все хорошо описано в стандартной документации
      я стараюсь рассказывать что то о чем мало написано, но важно знать разработчику.

  • @ninja095
    @ninja095 Год назад +1

    спасибо за проделанную работу. Но мне тяжело это переваривать. Много терминологии, которая для начинающих немного сложновата. Хотя я понимаю, что скорее всего видео далеко не для начинающих. Но для своего уровня я не могу найти подходящие уроки, где материал подавался бы как для 6-8 летних детей)))
    А так, конечно же урок крутой, и автор видно с огромнейшим опытом. Лайк!

  • @TimmertPlay
    @TimmertPlay 2 года назад

    +

  • @kcenot8kcenot755
    @kcenot8kcenot755 2 года назад

    А есть такие нюанси с mysqli ??? и какие?? спасибо за видео)

    • @kuvshinovee
      @kuvshinovee  2 года назад

      хороший вопрос, хоть я с mysqli мало работал.
      prepare скорей всего использует встроенный механизм PREPARE так как там просто нет эмуляции в опциях www.php.net/manual/en/mysqli.options.php
      query скорей всего не синтаксический сахар для prepare так как содержит еще аргументы которых нет в prepare, но это лучше проверить, не верить мне или документации :)
      возможно тут существуют другие особенности, надо делать отдельный цикл видео по ней (врятли это будет в ближайшее время)
      планы по видео github.com/smpl/youtube/issues

  • @user-qn4qm9gk1h
    @user-qn4qm9gk1h 2 года назад

    Евгений, всё, кина не будет? ((( Хотелось бы вывести для себя, как начинающего php-разработчика, универсальный скрипт подключения.

    • @kuvshinovee
      @kuvshinovee  2 года назад

      кина будет, в этом плейлисте еще планирую сделать минимум два видео
      1. Все что связано с ответами от базы данных и PDOStatment
      2. О транзакциях и изоляции.
      это минимум что планирую добавить к плейлисту, просто сейчас нет времени сделать эти видео
      универсального скрипта не существует, о опциях при создание подключения я уже говорил, не вижу смысла на видео читать документацию по каждой опции, это можно сделать и без видео, я лишь показал самые неожиданные вещи.

    • @user-qn4qm9gk1h
      @user-qn4qm9gk1h 2 года назад

      @@kuvshinovee Благодарю. буду ждать )

  • @adilkumashev8964
    @adilkumashev8964 2 года назад

    вышло крутое видео, но куда делся автор?(

    • @kuvshinovee
      @kuvshinovee  2 года назад +1

      занят работой и личными делами, продолжение этого будет плейлиста по мере освобождения времени

  • @qwerty-qr3ku
    @qwerty-qr3ku 2 года назад

    Лапшекод

    • @kuvshinovee
      @kuvshinovee  2 года назад

      есть такое, но цель тут продемонстрировать execute и prepare с минимум абстракций чтобы не сбивать людей чудесными паттернами и различными способами делегирования вызова

    • @ChelovekPeople
      @ChelovekPeople Год назад

      Отвергаешь, предлагай. Запишите видео поверх этого с информацией как улучшить. Глядишь и профиссианолизм самообучающихся вырастет.