使用php数组值进行mysql插入查询与implode函数

时间:2014-04-25 19:46:25

标签: php mysql sql syntax-error

由于我已经找到了几种创建数组的方法并将其插入到mysql查询中,因此我在下面创建了一个显然无效的代码。我注意括号和逗号,但我错过了有关VALUES的内容。

因为,那是不起作用的部分,查询的第一部分(列)是正确编写的(我认为),但我遇到了第二次内爆。

请帮忙。

$f_ids = array(f1, f2, f3, f4, f5);
$f_list = implode(',', $f_ids);

$val_ids = array($val[1],$val[2],$val[3],$val[4],$val[5]);
$val_list = implode("','", $val_ids);

$result = mysql_query("INSERT into mytable(id, title, {$val_list}) 
VALUES ('$id','$title','{$f_list}')");

错误在哪里,我找不到???

3 个答案:

答案 0 :(得分:5)

'{$f_list}'只有一个值。但{$f_list}是许多列标识符。结果是没有足够的值插入(mysql_error()会告诉您是否使用它。)

你想要的是:

$result = mysql_query("INSERT into mytable(id, title, {$f_list}) 
VALUES ('$id','$title','{$val_list}')");

基本上你只是使用了错误的变量。

答案 1 :(得分:1)

快速查看代码,不应该在那里

VALUES ('$id','$title','{$val_list}') 

而不是

VALUES ('$id','$title','{$f_list}')
你现在在那里有什么?

尝试打印输出$val_ids$val_list的值,以查看值是否符合您的预期。

答案 2 :(得分:1)

您可以使用JSON代替php数组,这是一种非常简单且无错误的方式来插入mysql。

<?php
   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);
?>

执行时,会产生以下结果:

{"a":1,"b":2,"c":3,"d":4,"e":5}