неверный запрос к MySQL...
в таком варианте работает
Код:
...
$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");
...
а вот в таком варианте нет
Код:
...
$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'");
...
смысл вопроса:
одинарные кавычки вроде по идеи должны обрамлять все переменные в запросе к БД... почему у меня в примере не работает..может что не так написал?
Код:
\'$intNum\'
Код:
\'$intNum\'
экранировал..тот же результат что и был
LIMIT takes one or two numeric arguments, which must both be non-negative integer constants,
а ковычки обрабатываются как строки
Ставь обратные кавычки (`), а не апостроф. Тогда всё будет правильно.
Только что попробовал несколько вариантов, мало ли это я чего торможу, не один не прошел.
В данном (вышеприведённом) запросе $intNum может быть пустым, поэтому БД вызывает exception, ибо запрос SELECT news_id,title,date FROM news ORDER BY news_id DESC LIMIT 0, является синтаксической ошибкой.
В языке SQL в кавычки берется все что не число и не булево значение. Все эти инсинуации по поводу того что надо все брать в кавычки беспочвенны. Да действительно если в MySQL выставить обратные кавычки -будет работать. Но господа! Тогда уж давайте перейдем в режим паранойи и будет имена таблиц и полей тоже в кавычки обрамлять. Зачем это надо?
В языке SQL в кавычки берется все что не число и не булево значение. Все эти инсинуации по поводу того что надо все брать в кавычки беспочвенны. Да действительно если в MySQL выставить обратные кавычки -будет работать. Но господа! Тогда уж давайте перейдем в режим паранойи и будет имена таблиц и полей тоже в кавычки обрамлять. Зачем это надо?[/QUOTE]
Но-но! Я не писал, что нужно всё заключать в кавычки. А напротив, написал "использовать обратные кавычки в запросах для обрамления строковых данных"
Ну что вы!! Я не про вас. В вашей компетентности я нисколько не сомневаюсь. Это я автору =))) :D
Код:
.....
.....
$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");
......
.....
т.е вот так оформить запрос?
или оставить его без (`)
если не прав поправь пожалуйста...
и впредь брать в (`) все кроме булевых и целых переменных?
Код:
.....
.....
$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");
......
.....
т.е вот так оформить запрос?
или оставить его без (`)
если не прав поправь пожалуйста...
и впредь брать в (`) все кроме булевых и целых переменных?[/QUOTE]
Зачем брать в обратные кавычки? Смысл? В кавычки НЕ обязательно брать: числовые значения (любые: целые, с плавающей точкой и т.д.), булевы значения (true/false - насколько я помню в MySQL 4.x такого типа нет и появляется только с пятой версии). Все остальное НАДО заключать в кавычки. Другое дело что в разных БД эти кавычки разные. =)))
спасибо
А вот имена полей и таблиц совсем уж в кавычки не надо. Только время на них тратится.