所以我有我的PHP页面,在地址栏中它的内容如下:
http://blabla/ClientStats.php?client=blabla
我成功使用了$ _GET ['CLIENT']变量,直到我想在SQL查询中访问它,如下所示:
<?php
$query = "SELECT ... ... ... FROM ... ... ... WHERE Client = '" + $_GET['CLIENT'] + "'";
?>
查询要复杂得多,但“WHERE”语句会起作用吗?
我试图通过几种不同的方式使这项工作没有成功,所以如果我今天能找到明天的工作方式那将会很棒(甚至不记得我是否尝试过这样做)上面写道!)。
那么这项工作是否可行呢?
答案 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. "'";
?>