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 - Наука
Спасибо большое! Пересмотрю ещё ни раз, но и с первого раза сложилось понимание, как это работает и для чего нужно. Отдельное спасибо за нюансы, которые вы проговариваете, это очень ценная информация!
Спасибо, ты открыл мне глаза , на многие нюансы знаю ответы теперь. Лайк за труд
Евгений, спасибо большое за видео!!!
Спасибо большое!)
Спасибо огромное, столько нового узнал из видео.
очень годный плейлист! Спасибо!
это еще не оконченный плейлист
будет еще минимум 2 видео в этом плейлисте
лайк, не глядя ставлю уже) знаю, что будет интересно)
Видео классные. Жаль, что комментов мало.
Крутяцкий канал. Жаль что это крайнее видео( Прям грустно
Этот плейлист будет продолжен ещё 2 видео минимум в нем будет
@@kuvshinovee Слышал об этом в прошлом ролике. Думал ты уже забил на него
Отлично! Всё понятно, даже объяснили как работаю кишки). Только в конце не понятно, нужно новый видос про свинью и как это может отразиться на нас, По буквам буквально
плейлист не закончен
что касается свиньи рассказывать о ней отдельно не имеет смысла, просто это некая микро оптимизация когда хочется сделать запрос по execute, но этого не получается сделать так как эмуляция отключена и у pdo остается только один метод exec, в котором нет возможности получить результат, я обычно такую проблему решаю с помощью двух подключений, одно подключение у которого эмуляция отключена (оно по умолчанию), а если надо выполнить методом execute то использую другое подключение, но справедливости ради такое встречается крайне редко и это микро оптимизация которая далеко не всегда стоит затраченного времени.
плейлист по pdo планирую продолжать
@@kuvshinovee Есть у меня такой вопрос. В таблице у меня 366 столбца. В пдо название таблицы не сделать через bind., только через переменную. Тойсть нужно биндить все 366 столбца или пускать через цикл по одному столбцу 366 раз и в переменную вставлять название столбца что не безопасно и будет грузить сервер неплохо
@@user-nj3ho3uq4h не совсем понял вопрос.
1. у вас есть таблица у которой 366 колонок ?
2. вы хотите название этой таблицы задавать через bind ? так естественно нельзя, нафига такое ?
3. насчет нагрузки сервера я думаю это преувиличено это не сильно "загрузит сервер", но если вы этого боитесь тут есть собственно два пути:
1. Выбирать только те колонки что запросил пользователь (кстати говоря не самая лучшая стратегия с точки зрения кэширования)
2. Выбирать все 366 столбцов и отдавать во фронт их
3. Выбирать все 366 столбцов и потом из этого результата выбирать уже только те столбцы что запросил пользователь
неплохо знать в этих столбцах много ли информации содержится? чтобы размер ответа не превышал 100кбайт
@@kuvshinovee Да есть таблица у которой 366 колонок. Я хотел название одной колонки одной задать через bind в итерации цикла, но нельзя названия так делать, можно только через переменную. В запросе может быть разное количество колонок быть вплоть до 366 штук. У каждой колонки значение - цифра 8 знаков.
Годно давай про ооп или про циклы масивы многим будет интересно
про ооп расказывать что такое private, protected, extend и тд есть в документации, про паттерны тоже есть хорошие материалы refactoring.guru/
циклы, массивы это все хорошо описано в стандартной документации
я стараюсь рассказывать что то о чем мало написано, но важно знать разработчику.
спасибо за проделанную работу. Но мне тяжело это переваривать. Много терминологии, которая для начинающих немного сложновата. Хотя я понимаю, что скорее всего видео далеко не для начинающих. Но для своего уровня я не могу найти подходящие уроки, где материал подавался бы как для 6-8 летних детей)))
А так, конечно же урок крутой, и автор видно с огромнейшим опытом. Лайк!
+
А есть такие нюанси с mysqli ??? и какие?? спасибо за видео)
хороший вопрос, хоть я с mysqli мало работал.
prepare скорей всего использует встроенный механизм PREPARE так как там просто нет эмуляции в опциях www.php.net/manual/en/mysqli.options.php
query скорей всего не синтаксический сахар для prepare так как содержит еще аргументы которых нет в prepare, но это лучше проверить, не верить мне или документации :)
возможно тут существуют другие особенности, надо делать отдельный цикл видео по ней (врятли это будет в ближайшее время)
планы по видео github.com/smpl/youtube/issues
Евгений, всё, кина не будет? ((( Хотелось бы вывести для себя, как начинающего php-разработчика, универсальный скрипт подключения.
кина будет, в этом плейлисте еще планирую сделать минимум два видео
1. Все что связано с ответами от базы данных и PDOStatment
2. О транзакциях и изоляции.
это минимум что планирую добавить к плейлисту, просто сейчас нет времени сделать эти видео
универсального скрипта не существует, о опциях при создание подключения я уже говорил, не вижу смысла на видео читать документацию по каждой опции, это можно сделать и без видео, я лишь показал самые неожиданные вещи.
@@kuvshinovee Благодарю. буду ждать )
вышло крутое видео, но куда делся автор?(
занят работой и личными делами, продолжение этого будет плейлиста по мере освобождения времени
Лапшекод
есть такое, но цель тут продемонстрировать execute и prepare с минимум абстракций чтобы не сбивать людей чудесными паттернами и различными способами делегирования вызова
Отвергаешь, предлагай. Запишите видео поверх этого с информацией как улучшить. Глядишь и профиссианолизм самообучающихся вырастет.