2014-02-18 64 views
2

我运行该页面,出现此错误。我仍然无法找出问题出在哪里:foreach循环中的mysql snytax错误

错误:您的SQL语法错误;检查对应于你的MySQL服务器版本使用附近的权利,createtime)VALUES('test10' ,1,1,现在())”在行正确的语法2

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()); 

    } 
} 

回答

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()); 

    } 
} 
  • 草莓说:最好不要采取保留关键字。
+2

一个更好的主意是不使用保留字 – Strawberry

+0

这个工程!谢谢! – Annie

+0

欢迎@安妮:),考虑接受解答:)。 –

0

$ value是一个数组,这很可能是错误的原因。尝试像这样:

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