好的,所以我有一些PHP将一个变量传递给页面的URL。 PHP页面拿起名为“物品1”的变量,它然后添加一个字符串变量前面如下(为示例的缘故可以说,该变量为10):将一个PHP变量传递给SQL select查询
$v1 = $_GET['item1'];
echo "$v1";
$v2 = 'table-';
$v3 = $v2.$v1;
echo "$v3";
这版画“表-10 “在网页上。辉煌。
现在我想这个传递到一个MySQL的SELECT语句,以便它可以查询命名为“表10”表:
$sql = "select * from $v3";
$result = mysql_query ($sql);
然而,这是行不通的。我在这里做一些非常愚蠢的事情吗?任何帮助表示赞赏。
编辑:
感谢所有帮助家伙,关于SQLI注入你的意见是赞赏然而,这是一个没有对外暴露什么那么所以任何攻击都是因为它的立场相当不重要本地唯一的系统。这个系统只是一个概念证明,所以当我真正建立完整的系统时,我会确保它不包含任何漏洞利用。通过使用反引号解决了这个问题,非常感谢!
[**请不要在新的代码中使用'mysql_ *'功能**]( http://bit.ly/phpmsql)。他们不再被维护[并被正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://www.brightmeup.info/article.php?a_id=2)。 – insertusernamehere 2013-02-14 16:11:59
请仔细阅读:http://bobby-tables.com – insertusernamehere 2013-02-14 16:13:07
你这样做的方式,它是*宽*开放被黑客入侵。你需要立即停止你正在做的事情,并且去研究一下“SQL注入攻击”的主题。确保你了解它们是什么以及它们是如何执行的,以及为什么你的代码易受攻击。 – SDC 2013-02-14 16:13:59