MYSQL, где предложение вызывает синтаксическую ошибку

Я просто не могу найти, что не так с этим простым утверждением:

$stat_qry = mysql_query("SELECT * FROM stats WHERE group=$galgroup") or die("STATS ERROR: ".mysql_error()); $stat = mysql_fetch_array($stat_qry);

я просто получаю: «ОШИБКА СТАТИСТИЧЕСКОЙ ОШИБКИ: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с« группой = 1 »в строке 1»

я не могу заставить его работать с предложением «где», если я удалю «где», оно работает, но просто перечисляет все в базе данных


person Mystic    schedule 27.02.2015    source источник
comment
Если бы я получил эту ошибку, сначала я бы сначала напечатал запрос   -  person Sulthan Allaudeen    schedule 27.02.2015
comment
Оберните `группу` обратными галочками, потому что это зарезервированное слово   -  person Mihai    schedule 27.02.2015
comment
Идея получше: не используйте зарезервированные слова в качестве идентификаторов столбцов/таблиц. И посмотрите о sql-injection, устаревшем PHP API mysql и подготовленных операторах.   -  person Strawberry    schedule 27.02.2015


Ответы (1)


ГРУППА — это зарезервированное слово, поэтому его необходимо быть между обратным тиком `` Кроме того, если $galgroup может быть строкой, а не только числом, вам нужно добавить кавычки вокруг него:

$stat_qry = mysql_query("SELECT * FROM stats WHERE `group`='$galgroup'") or 
die("STATS ERROR: ".mysql_error()); $stat = mysql_fetch_array($stat_qry);
person Fabien TheSolution    schedule 27.02.2015
comment
я не могу поверить, что это все, что потребовалось, я потратил весь день, пытаясь понять это, воссоздал свои таблицы, переписал свой код... аргх. Большое спасибо - person Mystic; 27.02.2015