$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
方法可以在从其他页面指向此处时询问不同的数字
我是初学者所以请不要给出正确的代码,但要解释为什么会发生这种情况,以便我可以从中吸取教训。
答案 0 :(得分:3)
如果在您使用数字手动替换$_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。
答案 1 :(得分:1)
您可以这样使用:
$Id=$_GET["$somevariable"];
$sql1 = 'SELECT * FROM someTable INNER JOIN someTable ON someTable.tID = someTable.threadID LEFT JOIN someTable ON someTable.ID = someTable.IMAGEID WHERE tID = '. $Id ;