2013-02-27 76 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