| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Php MySql - строковая переменная в условии Select' |
| Автор: script4u 6.11.2014, 18:01 | ||||
Всем привет! Есть проблема со вставкой переменной в условие запроса Select. Есть переменная похожего типа:
И запрос:
В итоге запрос не работает, ошибок не выдает, просто нулевой результат, причем если вставить строку прямо в запрос(без переменной) все работает. В чем может быть проблема? Предрекаю вопрос "А зачем?": Заранее неизвестно сколько условий id будет в условии, поэтому пришлось прикрутить костыль - условие собирается чуть выше в виде строки. |
| Автор: _zorn_ 7.11.2014, 02:55 | ||
| На будущее, если запрос не работает - сделай echo этого запроса. Твой будет выглядеть вот так.
Ошибку не видишь ? |
| Автор: igorold 7.11.2014, 06:15 | ||
| Если бы видел, видимо не обращался бы ... написал бы, чтобы убрал одинарные кавычки вокруг переменной. Сейчас юзеры не любят мозги напрягать ... А вообще, я как-то давно читал, что рекомендуется переменные не вставлять внутрь строки, делать типа того:
Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Php-MySql-strokovaya-peremennaya-v-uslovii-Select-id545b8dadae2015dd078b4567#findElement_E7045_545c396dae20155a788340c5_0 |
| Автор: igorold 7.11.2014, 10:48 |
| Почему мой пример должен сильно отличаться от оригинала, если я исправил там небольшую ошибку - убрал ненужные в запросе кавычки? В своё время я читал рекомендации про оптимизацию работы ПХП и там как раз это была одна из рекомендаций - убирать переменные из строки. Почему я про это не написал, чтобы не забивать никому голову (переполнять память) лишней информацией. Если вы про это не знали, это ваши проблемы и держите своё мнение о незнакомых людях в одном месте и не гоните волну. Иногда лучше дать людям исправленный и работающий пример, чем с понтами изображать намеки ... Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Php-MySql-strokovaya-peremennaya-v-uslovii-Select-id545b8dadae2015dd078b4567#findElement_E7045_545c7939ae201584278340e4_0 |
| Автор: _zorn_ 7.11.2014, 11:24 |
Ну если только сервак работает на калькуляторе... Более того я даже знаю в чем "оптимизация". Только в вашем примере ее нет Скорей всего там говорилось что нужно использовать одинарные кавычки вместо двойных - типа строка тогда не будет парсится на наличие переменных. Понты я вижу только у вас. Где то что то прочитал, но преподносите так, как будто так нужно делать. ИМХО все же нужно дать человеку самому разобраться в чем ошибка. Типа "Дай человеку рыбу – он будет сыт один день, научи человека ловить рыбу – он будет сыт всю жизнь" |
| Автор: igorold 7.11.2014, 11:35 |
Вы либо невнимательно читаете, либо что-то недопонимаете ... Добавлено через 3 минуты и 7 секунд Вот та рекомендация: Выносите $переменные из "текстовых строк" - ускорение 25-40% http://php.spb.ru/php/speed.html |
| Автор: _zorn_ 7.11.2014, 14:20 |
| Как я и думал. Вы всерьез считаете ЭТО надежным источником ? Может еще статьи за 2000 год в пример приводить. Ну и верить на слово не комильфо. Как дела обстоят сейчас - http://ideone.com/YV487c И это не продакшн сервер. А теперь сравни с этим и можешь смело слать такие "советы" куда подальше, если не понимаешь что происходит http://ideone.com/tV0ZY3 И ведь почти ничего не поменялось. |
| Автор: Gold Dragon 12.11.2014, 16:49 | ||||||
или если неизвестно что и как то даже так
|
| Автор: igorold 18.11.2014, 17:05 | ||
Спасибо за информацию |
| Автор: LexzCQ 24.11.2014, 22:10 |
| Посмотрите в коде html какой тип у кнопки прописан (должен быть submit). |