foreach循环中的mysql语法错误

时间:2014-02-18 09:43:20

标签: mysql

我运行该页面,出现此错误。我仍然无法找出问题所在:

错误:您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在第2行“右,创建时间”VALUES('test10',1,1,now())'附近使用正确的语法

foreach($array as $value){

    //insert record
$sql2 = "INSERT INTO projectright
        (generalusername,projectid,right,createtime)
        VALUES
        ('$_POST[username]',
        ".$value.",
        1,
        now())";    

        if (!mysql_query($sql2,$con))

  {

  die('Error: ' . mysql_error());

  }
}

2 个答案:

答案 0 :(得分:4)

right是保留关键字

你应该通过这样的反叛来逃避它

   INSERT INTO projectright
    (generalusername,projectid,`right`,createtime)
    .....
    .....

在按列创建/播放时查看reserved keywords,并通过反引号将其转义。

试试这个:

  foreach($array as $value){


 $sql2 = "INSERT INTO projectright
    (generalusername,projectid,`right`,createtime)
    VALUES
    (".$_POST['username'].",
    ".$value.",
    1,
    now())";    

    if (!mysql_query($sql2,$con))

  {

  die('Error: ' . mysql_error());

  }
 }
    草莓说:
  • 最好不要保留关键词。

答案 1 :(得分:0)

$ value是一个数组,这很可能是导致错误的原因。尝试类似:

$sql2 = "INSERT INTO projectright
        (generalusername,projectid,right,createtime)
        VALUES
        ('$_POST[username]',
        ".implode($value).",
        1,
        now())";