【发布时间】:2011-04-19 00:11:59
【问题描述】:
我尝试了几种方式来解决这个问题,但错误消息几乎保持不变:
15检索分数时出错 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“table WHERE id>15 1 ORDER BY id ASC LIMIT 0,100”附近使用正确的语法
我打的电话是
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);
谁能看出我哪里出错了?
最诚挚的问候, -代码
编辑
看到这两行
//$sql = "SELECT * FROM $table WHERE ";
$sql = "SELECT * FROM $table WHERE id>$theid ";
如果我注释掉最后一行,取消注释第一行,脚本运行正常并返回数据。但是保持原样会产生错误。
所以这让我相信问题与此有关
id>$theid ";
问候 -代码
【问题讨论】:
-
你想通过在“全局”案例中附加
"1 "来达到什么目的? -
您的编辑更改返回错误?