Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: вопрос по mysqli_stmt_bind_param [3]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 2 [3]   

> Без описания
Sail
Отправлено: 15 Июня, 2015 - 11:42:09
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




arimanecro пишет:
Поэтому, если я закрою первый запрос, нарушится целостность верстки.

Никто Вас не заставляет сразу отдавать html-код в браузер.
Можно, например, накопить данные в массивах...
Ну или запрос один на получение всех необходимых данных сообразить...
 
 Top
tuareg
Отправлено: 15 Июня, 2015 - 23:38:39
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Мелкий пишет:
Вы ещё спросите, когда люди, наконец, насиловать mysql_query перестанут...
Зачем вообще эта функция сделана? Потому что когда mysqli делали (больше десяти лет назад уже релиз был!) - ещё надо было думать о древних версиях MySQL, которые препарированные запросы ещё не умели (то ли MySQL 3 версии, то ли ранние 4.х). А теперь не выкинешь, обратная совместимость же.

Это не совсем правда )). Почитайте как работают подготовленные выражения в mysql, зачем их нужно использовать(подсказка для запросов в цикле, но точно не для экранирования).
 
 Top
LIME
Отправлено: 15 Июня, 2015 - 23:43:08
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




tuareg еще можно добавить возможность динамического построения запроса
В смысле динамического построения запрашиваемых столбцов например
Хотя это скорее экзотическое использование
и теряется смысл препаров
Но можно))
(Добавление)
В смысле CONCAT в самом запросе полей например
(Добавление)
Знаешь такой вариант?
(Добавление)
Фикус в том что можно делать конкат в переменную а переменную можно юзать в препарах
значит можно всяко это юзать
тут главное не заблудиться и понимать что результаты запроса после подготовки запроса уже невозможно
да?
 
 Top
Мелкий Супермодератор
Отправлено: 16 Июня, 2015 - 10:57:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




tuareg пишет:
зачем их нужно использовать(подсказка для запросов в цикле, но точно не для экранирования).

Для экранирования prepared statements использовать не получится. Нету там экранирования.

То ли я не то читаю, то ли что.
Prepared statements реализуют две вещи:
0) кэширование плана и снижение накладных расходов на парсинг запроса
1) отказ от экранирования данных в пользу передачи отдельно от запроса.

mysql явно говорит о том, что производительность может быть хуже, чем при использовании прямых запросов: https://dev[dot]mysql[dot]com/doc/refman[dot][dot][dot]-statements[dot]html
При этом, емнип, кэш плана живёт только в пределах соединения и после очищается. Что довольно печально.
Но пункт про более эффективную (и безопасную) передачу данных остаётся неизменным и явным плюсом подготовленных запросов.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 16 Июня, 2015 - 11:01:43
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Мелкий пишет:
отказ от экранирования данных в пользу передачи отдельно от запроса.
вернее будет сказать передача бинарных данных наверное
Ну и помним что пдо по умолчанию эмулирует препары
Да?
(Добавление)
То есть экранирует по полной
Плюс в том что не надо это помнить
Кроме случаев динамического составления запросов своими силами
Тоесть поля и таблицы от пользака
Хотя это уж совсем глупость и экзотика но всеже надо это помнить новичкам
(Добавление)
Хм...почему Мелкий молчит? Толи я глупость сморозил толи ему нужно переварить
Ой хоть бы второеУлыбкаУлыбка
 
 Top
Мелкий Супермодератор
Отправлено: 16 Июня, 2015 - 11:37:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Мелкий работает Закатив глазки
Замечания справедливы.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 16 Июня, 2015 - 11:51:00
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Мелкий а как ты прокомментируешь мое замечание об использовании препаров для динамического составления запроса в sql программе
Я о конкате в переменную
Ты знал о таком варианте использования?
Также интересует знал ли туарег
Хоть бы раз вас за пояс заткнутьУлыбкаУлыбкаУлыбка
Пысы
Знаю что такое стремление меня не красит но это один из двигателей моего проффесионального роста потому я осознанно себе это разрешаю
 
 Top
Мелкий Супермодератор
Отправлено: 16 Июня, 2015 - 13:04:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Я по объяснению не понял, что это и как должно работать Ниндзя


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 16 Июня, 2015 - 13:15:58
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Хм
Вот и я чемуто мелкого научуУлыбка
Например мы пишем хранимку или просто прогу на sql
Например мы собираем наименования столбцов
SELECT CONCAT_WS(',', columns) FROM tbl
Тоесть мы хотим собрать столбцы
Ну ты понял? Не одно значение а именно интерпретировать результат
Много раз видел тут на форуме подобные вопросы и всегда был дан ответ что такое не есть возможно
Хрен там! Возможно
Если сначала поместить результат в переменную то потом внутри этой же программы можно вставить переменную в запрос и произойдет выборка по конкатенированным полям
Тоесть мускул интерпретирует содержание переменной в препарированном запросе
К сожалению пример сейчас не приведу но думаю смысл донес
Просто пишу с планшета на больничномУлыбка
(Добавление)
Нене
Лучший вариант использования вспомнил
Например у очередного деятеля хранятся id через запятую
В слонике все хорошо а вот в мускуле как это можно поместить в IN () ?
Можно поместив в переменную select into @var
И потом препарировав запрос можно эту @var поместить в IN
Каково?
(Добавление)
Мелкий уснул там чтоли???
Работа не отпускает язык почесать?УлыбкаУлыбкаУлыбка
Ну понял о чем я?
 
 Top
Мелкий Супермодератор
Отправлено: 16 Июня, 2015 - 14:43:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Угу, не отпускает работа.
Да, понял теперь, забавно. mysql вообще много чего может сделать странного и интересного через пользовательские переменные Закатив глазки но не углублялся в них.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 16 Июня, 2015 - 14:46:51
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Мелкий ставь плюсик мнеУлыбка
Столько раз ты мне когдато вещи объяснял что теперь для меня событиеУлыбка
Хотя ты мне элементарные вещи пояснял типа мб фций
Но всежевсежеУлыбкаУлыбка
(Добавление)
Эээ вообще мне плюсики фиалетовы
Но от тебя хотелось быУлыбка
Я не прогибаюсь просто приятно черт побериУлыбка
(Добавление)
Тут конечно теряется сам смысл препарирования
Потому как все константно
Такой вот бесполезный хак
Не более чем занимательно
 
 Top
Мелкий Супермодератор
Отправлено: 16 Июня, 2015 - 15:06:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)





Держи плюсик


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 16 Июня, 2015 - 15:09:11
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




АгаУлыбка я уже увиделУлыбка
А как насчет статьи? По использованию хэшей
Я бы написал только вот надо ли?
Могу просто в теме продолжить а ты потом вычленишь
Только вот не хочу писать статью ради статьи
Я не настолько амбициозен
 
 Top
Страниц (3): « 1 2 [3]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB