【问题标题】:Syntax error in phpphp中的语法错误
【发布时间】:2011-08-10 14:09:15
【问题描述】:

我试图让这个查询工作,但我无法正确使用语法,有人可以帮忙吗?谢谢

 $query="UPDATE users SET upsell2='" .$upsell2.
          "' upsell1='" .$upsell1."' WHERE email='" .$email."'";

【问题讨论】:

  • 是PHP语法错误,还是MySQL语法错误?也许您错过了前一行的结束字符?

标签: php sql syntax


【解决方案1】:

您在两个“set”列之间缺少逗号:

 $query="UPDATE users SET upsell2='" .$upsell2.
      // add comma here.
      "', upsell1='" .$upsell1."' WHERE email='" .$email."'";

【讨论】:

    【解决方案2】:
     $query="UPDATE users SET upsell2='$upsell2', upsell1='$upsell1' WHERE email='$email'";
    

    如果您只是用来自 var 的数据填充字符串,则不必进行字符串连接。但是,在纯 SQL 中使用 vars 是一个非常糟糕的主意,请考虑使用 prepared statements

    【讨论】:

      【解决方案3】:
      $query = "UPDATE users SET upsell2='" . $upsell2 .
      "', upsell1='" . $upsell1 . "' WHERE email='" . $email. "'";
      

      注意第二行的逗号,确定是PHP语法错误而不是SQL语法错误?

      【讨论】:

        【解决方案4】:

        看起来您在字段之间缺少逗号

        $query="UPDATE users SET upsell2='" .$upsell2."', upsell1='", .$upsell1."' WHERE email='" .$email."'";
        

        【讨论】:

          【解决方案5】:

          并且不要忘记对值进行转义(对于 MySQLi,它是 mysqli_real_escape_string 函数)以防止未转义数据可能导致的错误。

          【讨论】:

            猜你喜欢
            • 2016-10-23
            • 2011-12-07
            • 2013-03-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多