0

是否有任何 mysql 语法来阻止用户输入附加查询?如果查询是

    SELECT *
    FROM `username`
    WHERE `type` = 'client'
    END / LIMIT / whatever syntax here;

'client'如果用户尝试通过添加以下内容来添加自己的查询,则查询应该停止OR

    SELECT *
    FROM `username`
    WHERE `type` = 'client'
    OR 1 = 1;

不起作用。提前致谢。

4

1 回答 1

0

我将假设您正在使用 PHP,并且通过 $_POST 从用户那里接收到“客户端”作为参数。在这种情况下,我认为您要做的是防止 SQL 注入。如果是这样,您应该使用mysql_real_escape_string()清理输入参数来解决它:

// This could be supplied by a user, for example
$type = $POST['type'];

// Formulate Query
// This is the best way to perform an SQL query
// For more examples, see mysql_real_escape_string()
$query = sprintf("SELECT * FROM username 
    WHERE type='%s',
    mysql_real_escape_string($type));

// Perform Query
$result = mysql_query($query);

...

我从mysql-query 参考中获取了这个示例,并根据您的需要对其进行了调整。

于 2013-07-31T03:03:55.643 回答