$sql1 = 'SELECT * FROM someTable INNER JOIN someTable ON someTable.tID = someTable.threadID LEFT JOIN someTable ON someTable.ID = someTable.IMAGEID WHERE tID = $_GET["$somevariable"] ';
如果我tID
手动输入数字,上述查询有效。我想做的是使用$_GET
此页面上的方法。因此$_GET
,当从其他页面指向此处时,方法可以要求提供不同的数字
这可能吗?如果可以,该怎么办?
我是一个初学者,所以请不要只提供正确的代码,而是请解释为什么也会发生这种情况,以便我可以从中学习。
如果在您手动替换$_GET
为数字时查询有效,那么我首先要确保$_GET['whatever']
已正确设置。使用echo var_dump($_GET)
查看有关该变量的所有信息。如果该变量似乎设置正确,则可能是串联的问题。
尝试改变
$sql1 = 'SELECT * FROM someTable INNER JOIN someTable ON someTable.tID = someTable.threadID LEFT JOIN someTable ON someTable.ID = someTable.IMAGEID WHERE tID = $_GET["$somevariable"] ';
到
$sql1 = 'SELECT * FROM someTable INNER JOIN someTable ON someTable.tID = someTable.threadID LEFT JOIN someTable ON someTable.ID = someTable.IMAGEID WHERE tID = '.$_GET["$somevariable"].' ';
这将正确地将变量插入到查询中。
重要的提示
您没有提供任何其他代码,所以我不知道您是否在适当地清理输入,但是无论如何,您实际上不应该编写这样的SQL查询。向PDO寻求参数化声明。如果您只是注入$_GET
查询,请想象是否有人在您的表单中键入SQL。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句