在嵌入式SQL查询中使用PHP $ _GET变量

时间:2012-10-28 11:53:04

标签: php sql

所以我有我的PHP页面,在地址栏中它的内容如下:

http://blabla/ClientStats.php?client=blabla

我成功使用了$ _GET ['CLIENT']变量,直到我想在SQL查询中访问它,如下所示:

<?php
$query = "SELECT ... ... ... FROM ... ... ... WHERE Client = '" + $_GET['CLIENT'] + "'";
?>

查询要复杂得多,但“WHERE”语句会起作用吗?

我试图通过几种不同的方式使这项工作没有成功,所以如果我今天能找到明天的工作方式那将会很棒(甚至不记得我是否尝试过这样做)上面写道!)。

那么这项工作是否可行呢?

4 个答案:

答案 0 :(得分:2)

这不是一个好主意,因为您在sql查询中使用未经检查的用户输入,这将导致安全漏洞。

答案 1 :(得分:2)

添加'。'而不是'+'。它应该是

$query = "SELECT ... ... ... FROM ... ... ... WHERE Client = '" . $_GET['CLIENT'] . "'";

但在此之前,请检查您的代码,因为它对SQL注入很容易

答案 2 :(得分:1)

回答你的原始问题,是的,它会起作用,但我认为你会发现它相当不赞成,因为它会在你的应用程序中打开巨大的安全漏洞。

我所做的是将值存储在变量中,然后对输入进行整理:

示例:

$client = mysql_real_escape_string($_GET['CLIENT']);

答案 3 :(得分:0)

你必须使用* _real_escape_string转义,否则你的查询能够sql注入attak 因此像这样使用

$client = mysql_real_escape_string($_GET['CLIENT']);//if using mysql

<?php
$query = "SELECT ... ... ... FROM ... ... ... WHERE Client = '".$client. "'";
?>