2013-02-27 110 views
0

我有從一組複選框生成ID的列表如下:PHP循環來使MySQL查詢

$list = mysql_real_escape_string(implode(',',$_POST['checkbox'])); 

其輸出這樣的列表:

A,B,C

我想在每個列表項對應的MYSQL數據庫中設置一列,但我試圖用foreach循環創建查詢失敗,如下所示:

$update_query= ''; 
foreach($list as $item){  //error on this line 
$update_query .= " 
    INSERT INTO t (Col_1, Col_2) 
    VALUES ('".$item."',now()); 
    ";} 

它沒有告訴我我爲foreach()提供了一個無效的參數,但我不確定。這意味着什麼,和b。如何解決它;任何人都可以提供任何指導,讓我的循環工作或更好的方式來做這個INSERT。

由於

+2

RTLM:http://php.net/foreach http://php.net/implode – 2013-02-27 16:01:57

+0

在我發佈之前,我確實檢查了PHP手冊,但由於我自學了~3個月的知識,我經常會發現它們難以理解。無論如何,感謝您花時間閱讀我的問題:) – xgstr 2013-02-27 16:18:20

回答

3

$list是一個字符串,而不是陣列。嘗試通過陣列之前,你已經加載它:

$update_query= ''; 

foreach($_POST['checkbox'] as $item) 
{ 
    $update_query .= "INSERT INTO t (Col_1, Col_2) VALUES ('".addslashes($item)."', now());"; 
} 

雖然你會更好使用準備好的語句!

+0

完美的作品,非常感謝。你能給我一個在這種情況下如何使用準備好的陳述的例子嗎? – xgstr 2013-02-27 16:15:59

+1

當然,請仔細閱讀說明書;)http://php.net/manual/en/book.pdo.php – BenM 2013-02-27 16:17:15

+0

我會再讀一遍,再次感謝:) – xgstr 2013-02-27 16:28:41