2014-02-18 93 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())";