此SQL / PHP代码中的语法错误是什么?

时间:2012-09-24 18:11:29

标签: php mysql

Dreamweaver在以下代码的第3行报告错误:

if (isset($_POST['sitename']))
    {
        $query = "INSERT INTO dllist (name, url, pr) VALUES ( "$_REQUEST['sitename'], $_REQUEST['siteurl'], $_REQUEST['pagerank']" )";
        $result = mysql_query($query) 
            or die("Query Failed".mysql_error());

        echo "<br />Website Has been added<br />";

    }

此外,在浏览器中运行代码时,会报告以下错误

Parse error: syntax error, unexpected '$_REQUEST' (T_VARIABLE)

有人能告诉我错误在哪里吗?我真的很感激。

3 个答案:

答案 0 :(得分:3)

逗号(以及您遗漏了值周围的容器(例如单引号)的事实),它应该是:

        $query = "INSERT INTO dllist (name, url, pr) VALUES ('".$_REQUEST['sitename']."', '".$_REQUEST['siteurl']."', '".$_REQUEST['pagerank']."')";

虽然这仍然是不好的做法,但它没有SQL注入保护。

答案 1 :(得分:1)

您需要连接字符串。将VALUES ("更改为VALUES (" .

答案 2 :(得分:1)

您在插入查询中输入的值需要单独引用,如下所示:  $query = "INSERT INTO dllist (name, url, pr) VALUES ( '$_REQUEST['sitename']', '$_REQUEST['siteurl']', '$_REQUEST['pagerank']' )";