Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

неверный запрос к MySQL...

10K
13 сентября 2006 года
KiLLMeNoT
61 / / 06.09.2006
есть запрос извлекающий последние $intNum новостей из БД и дающий их в программу
в таком варианте работает
 
Код:
...
$result = mysql_query("SELECT news_id,title,date FROM news ORDER BY news_id DESC LIMIT 0, $intNum");
...

а вот в таком варианте нет
 
Код:
...
    $result = mysql_query("SELECT news_id,title,date FROM news ORDER BY news_id DESC LIMIT 0, '$intNum'");
...


смысл вопроса:
одинарные кавычки вроде по идеи должны обрамлять все переменные в запросе к БД... почему у меня в примере не работает..может что не так написал?
2
13 сентября 2006 года
squirL
5.6K / / 13.08.2003
 
Код:
\'$intNum\'
?
10K
13 сентября 2006 года
KiLLMeNoT
61 / / 06.09.2006
[QUOTE=squirL]
 
Код:
\'$intNum\'
?[/QUOTE]

экранировал..тот же результат что и был
860
14 сентября 2006 года
Abell2000
138 / / 15.01.2003
Возможно все дело в этом:
LIMIT takes one or two numeric arguments, which must both be non-negative integer constants,
а ковычки обрабатываются как строки
8
14 сентября 2006 года
mfender
3.5K / / 15.06.2005
Ставь обратные кавычки (`), а не апостроф. Тогда всё будет правильно.
860
14 сентября 2006 года
Abell2000
138 / / 15.01.2003
Хотелось бы посмотреть на реальный запрос, который будет работать с применением ",' или `, поскольку LIMIT требует именно целое число.
Только что попробовал несколько вариантов, мало ли это я чего торможу, не один не прошел.
8
14 сентября 2006 года
mfender
3.5K / / 15.06.2005
Я имел ввиду, вообще использовать обратные кавычки в запросах для обрамления строковых данных.
В данном (вышеприведённом) запросе $intNum может быть пустым, поэтому БД вызывает exception, ибо запрос SELECT news_id,title,date FROM news ORDER BY news_id DESC LIMIT 0, является синтаксической ошибкой.
13
14 сентября 2006 года
RussianSpy
3.0K / / 04.07.2006
Эхххх... Ну сколько можно-то, а?
В языке SQL в кавычки берется все что не число и не булево значение. Все эти инсинуации по поводу того что надо все брать в кавычки беспочвенны. Да действительно если в MySQL выставить обратные кавычки -будет работать. Но господа! Тогда уж давайте перейдем в режим паранойи и будет имена таблиц и полей тоже в кавычки обрамлять. Зачем это надо?
8
14 сентября 2006 года
mfender
3.5K / / 15.06.2005
[QUOTE=RussianSpy]Эхххх... Ну сколько можно-то, а?
В языке SQL в кавычки берется все что не число и не булево значение. Все эти инсинуации по поводу того что надо все брать в кавычки беспочвенны. Да действительно если в MySQL выставить обратные кавычки -будет работать. Но господа! Тогда уж давайте перейдем в режим паранойи и будет имена таблиц и полей тоже в кавычки обрамлять. Зачем это надо?[/QUOTE]
Но-но! Я не писал, что нужно всё заключать в кавычки. А напротив, написал "использовать обратные кавычки в запросах для обрамления строковых данных"
13
14 сентября 2006 года
RussianSpy
3.0K / / 04.07.2006
[QUOTE=mfender]Но-но! Я не писал, что нужно всё заключать в кавычки. А напротив, написал "использовать обратные кавычки в запросах для обрамления строковых данных"[/QUOTE]
Ну что вы!! Я не про вас. В вашей компетентности я нисколько не сомневаюсь. Это я автору =))) :D
10K
14 сентября 2006 года
KiLLMeNoT
61 / / 06.09.2006
2 RussianSpy
 
Код:
.....
.....
$result = mysql_query("SELECT `news_id`,`title`,`date` FROM `news` ORDER BY `news_id` DESC LIMIT 0,$intNum");
......
.....

т.е вот так оформить запрос?
или оставить его без (`)
если не прав поправь пожалуйста...
и впредь брать в (`) все кроме булевых и целых переменных?
13
14 сентября 2006 года
RussianSpy
3.0K / / 04.07.2006
[QUOTE=KiLLMeNoT]2 RussianSpy
 
Код:
.....
.....
$result = mysql_query("SELECT `news_id`,`title`,`date` FROM `news` ORDER BY `news_id` DESC LIMIT 0,$intNum");
......
.....

т.е вот так оформить запрос?
или оставить его без (`)
если не прав поправь пожалуйста...
и впредь брать в (`) все кроме булевых и целых переменных?[/QUOTE]

Зачем брать в обратные кавычки? Смысл? В кавычки НЕ обязательно брать: числовые значения (любые: целые, с плавающей точкой и т.д.), булевы значения (true/false - насколько я помню в MySQL 4.x такого типа нет и появляется только с пятой версии). Все остальное НАДО заключать в кавычки. Другое дело что в разных БД эти кавычки разные. =)))
10K
14 сентября 2006 года
KiLLMeNoT
61 / / 06.09.2006
=))
спасибо
8
14 сентября 2006 года
mfender
3.5K / / 15.06.2005
Ищо NULL можно без кавычек...
А вот имена полей и таблиц совсем уж в кавычки не надо. Только время на них тратится.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог