0
$query = sprintf("SELECT * FROM sorular WEHERE test_id='%s' ORDER BY id LIMIT '%s', '%s'",
mysql_real_escape_string(htmlentities(stripslashes($testid))), 
mysql_real_escape_string(htmlentities(stripslashes($start))), 
mysql_real_escape_string(htmlentities(stripslashes($perpage))));

我收到错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'test_id='1' ORDER BY id LIMIT '4', '2'' 附近使用正确的语法

4

3 回答 3

3

限制和偏移总是整数。尝试这个:

$query = sprintf("SELECT * FROM sorular WHERE test_id='%s' ORDER BY id LIMIT %s, %s",
mysql_real_escape_string(htmlentities(stripslashes($testid))), 
$start, 
$perpage);

无论如何,您以最糟糕的方式过滤变量。整数是整数,使用$int = (int) $maybeInteger;,字符串 - 你这样做mysql_real_escape_string()stripslashes()同时,这个函数很熟悉,看手册。htmlentities()应过滤后使用。

如前所述,正确答案是:WEHERE=> WHERE

于 2012-07-05T16:07:46.317 回答
1

你只是打了一个简单的错字:WEHERE -> WHERE

于 2012-07-05T16:08:15.490 回答
0

您在查询中拼写了 WHERE 错误。

于 2012-07-05T16:08:35.893 回答