PHP在不起作用的地方加入左侧。我做错了什么?

PHP在不起作用的地方加入左侧。我做错了什么?,php,join,Php,Join,大家好。我的代码的最后一部分出了什么问题 $sql= "SELECT name, content FROM {$dbpraefix}meta_global UNION SELECT name, content FROM {$dbpraefix}meta_local LEFT JOIN {$dbpraefix}pages ON {$dbpraefix}pages.id={$dbpraefix}meta_local.page

大家好。我的代码的最后一部分出了什么问题

 $sql= "SELECT name, content FROM {$dbpraefix}meta_global 
           UNION SELECT name, content FROM {$dbpraefix}meta_local 
           LEFT JOIN {$dbpraefix}pages ON {$dbpraefix}pages.id={$dbpraefix}meta_local.page 
           WHERE {$dbpraefix}pages.alias = $_GET['include']";
我的网页坏了。但如果我把最后一部分扔出去,效果会很好。 这是我“构建您自己的CMS”项目的一部分。
谢谢你的回答。

试试这个:添加单引号

WHERE {$dbpraefix}pages.alias = $_GET['include']"

通过PHP和您正在使用的任何RDBMS检查错误。顺便说一句,GET数组的值是多少?更重要的是,这段代码非常开放,可以进行注入。我可以为
include
变量添加任何内容,并直接注入查询。非常可怕的东西。我建议研究PDO或MysqliI时使用名称过滤器。(它的刺阵)它还危险吗?我应该避免包含吗?当然,如果是字符串的话。但我们还不知道;-)是的,它的绳子,非常感谢。但是如果它是一个数字(int,double等)怎么办?对不起,新手问题:)@SyarifMathis在这种情况下,你可以跳过引号,如果你使用引号,没有问题
$sql= "SELECT name, content FROM {$dbpraefix}meta_global 
           UNION SELECT name, content FROM {$dbpraefix}meta_local 
           LEFT JOIN {$dbpraefix}pages ON {$dbpraefix}pages.id={$dbpraefix}meta_local.page 
           WHERE {$dbpraefix}pages.alias = '".$_GET['include']."'";