php - 使用 WEHERE 的 SQL 语法错误

标签 php mysql sql

<分区>

$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))));

我收到错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'test_id='1' ORDER BY id LIMIT '4', '2'' at line 1

最佳答案

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

$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

关于php - 使用 WEHERE 的 SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11348283/

相关文章:

MySQL 过滤查询

php - POST 数据太大。减少数据或增加 "post_max_size"

sql - 将主键添加到 sql View

sql - Oracle物化 View 错误: code included

php - Symfony2 Doctrine 遍历 while next()

php - `$request->ajax()` 在Laravel中使用Fetch API拉取数据时没有检测到ajax请求

java - 使用 jquery 从表单中检索数据

php - Zend Framework 插件/模块

php - 如何通过htaccess在URL中添加index.php

sql - 假阴性 : Job Step History