$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服务器版本对应的手册,以便在'test_id ='1'附近使用正确的语法。在第1行的ORDER BY id LIMIT'4','2'
答案 0 :(得分: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
。
答案 1 :(得分:1)
你刚刚写了一个简单的拼写错误:WEHERE - > WHERE
答案 2 :(得分:0)
您在查询中拼写了单词WHERE错误。