Ошибка синтаксиса Php SQL - PullRequest
0 голосов
/ 19 апреля 2011

Я пытался упорядочить это несколькими способами, но сообщение об ошибке остается почти таким же:

15 Ошибка при получении баллов У вас есть ошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с таблицей. ГДЕ ИДЕНТИФИКАТОР> 15 1 ЗАКАЗАТЬ ПО ИДЕНТИФИКАТОРУ ASC LIMIT 0,100 'в строке 1

Вызов, который я выполняю,

http://myserver.com/get_dbupdates2.php?theid=15

    $type   = isset($_GET['type']) ? $_GET['type'] : "global";
$offset = isset($_GET['offset']) ? $_GET['offset'] : "0";
$count  = isset($_GET['count']) ? $_GET['count'] : "100";
$sort   = isset($_GET['sort']) ? $_GET['sort'] : "id ASC";

// Localize the GET variables
$udid  = isset($_GET['udid']) ? $_GET['udid'] : "";
$name  = isset($_GET['name']) ? $_GET['name']  : "";
$clubname  = isset($_GET['clubname']) ? $_GET['clubname']  : "";
$theid  = isset($_GET['theid']) ? $_GET['theid']  : ""; 


// Protect against sql injections
$type   = mysql_real_escape_string($type);
$offset = mysql_real_escape_string($offset);
$count  = mysql_real_escape_string($count);
$sort   = mysql_real_escape_string($sort);
$udid   = mysql_real_escape_string($udid);
$name   = mysql_real_escape_string($name);
$clubname   = mysql_real_escape_string($clubname);
$theid   = mysql_real_escape_string($theid);

    echo $theid;

// Build the sql query
//$sql = "SELECT * FROM $table WHERE ";
$sql = "SELECT * FROM $table WHERE id>$theid ";

switch($type) {
    case "global":
        $sql .= "1 ";
        break;
    case "device":
        $sql .= "udid = '$udid' ";
        break;
    case "name":
        $sql .= "name = '$name' ";
        break;
    case "clubname":
        $sql .= "clubname = '$clubname' ";
        break;
    case "theid":
        $sql .= "theid = '$theid' ";
        break;
}

$sql .= "ORDER BY $sort ";
$sql .= "LIMIT $offset,$count ";

$result = mysql_query($sql,$conn);

Кто-нибудь может увидеть, где я ошибся?

С наилучшими пожеланиями, -Code

РЕДАКТИРОВАТЬ

См. Эти 2 строки

//$sql = "SELECT * FROM $table WHERE ";
$sql = "SELECT * FROM $table WHERE id>$theid ";

Если я закомментирую нижнюю строку и раскомментирую верхнюю строку, скрипт работает нормально и возвращает данные.Но оставив все как есть, выдает ошибку.

Так что мне остается верить, что проблема как-то связана с

id>$theid ";  

С уважением -Code

1 Ответ

2 голосов
/ 19 апреля 2011

Именованная таблица 'таблица' должна быть заключена в кавычки

SELECT * FROM `table`

, и вы должны определить И или ИЛИ между условиями, например $sql .= "AND clubname = '$clubname' ";

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