【问题标题】:What is the syntax error in this SQL/PHP Code?此 SQL/PHP 代码中的语法错误是什么?
【发布时间】:2012-09-24 18:11:29
【问题描述】:

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)

谁能告诉我错误在哪里?我将不胜感激。

【问题讨论】:

  • 至少,您需要在 SQL 语句中引用变量。
  • 如果没有连接函数,您无法将字符串连接到变量。在 PHP 中,连接是点 (.)
  • SQL 注入邀请
  • @EricLeschinski 在这种特殊情况下,逗号也可以解决问题。

标签: php mysql


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多