Mysql синтаксическая ошибка ... или это PHP? - PullRequest
0 голосов
/ 14 июня 2011

Может кто-нибудь помочь мне разобраться, что не так с этой функцией ?? Я получаю ошибку синтаксиса mysql ...

function category_exists($name) {
    $name = mysql_real_escape_string($name);

    $query = mysql_query("SELECT COUNT(1) FROM 'categories' WHERE 'name' = '{$name}'"); 
    return (mysql_result($query, 0) == '0')? false : true;
}

Ответы [ 4 ]

3 голосов
/ 14 июня 2011

Вы не должны иметь кавычек вокруг таблицы и названия столбца (categories, name).Если вам нужно экранировать имена таблиц или столбцов, вы должны использовать обратные кавычки (`).IE:

$query = mysql_query("SELECT COUNT(1) FROM `categories` WHERE `name` = '{$name}'"); 
1 голос
/ 14 июня 2011
function category_exists($name) {
  $name = mysql_real_escape_string($name);

  $query = mysql_query("SELECT COUNT(1) FROM `categories` WHERE `name` = '{$name}'"); 
  return (mysql_result($query, 0) == '0')? false : true;
}

Вам нужны либо обратные кавычки (`), либо НЕТ кавычек вокруг имен таблиц и имен полей.

0 голосов
/ 14 июня 2011

Попробуйте изменить запрос на

"SELECT COUNT(*) FROM 'categories' WHERE name = '$name'"
0 голосов
/ 14 июня 2011

Строки указаны. Имена объектов (таблицы, столбцы ...) не являются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...