试图将数组插入数据库...(implode()[function.implode]:传递的参数无效)

时间:2012-12-06 03:51:42

标签: php mysql

我有一个选择输入,您可以在其中选择多个选项。不幸的是,我不知道如何将选定的值插入到我的数据库中。这是我试图使用的代码,它给了我一个无效的参数传递给我试图破坏它。

感谢您的帮助......

这是我的php:

  $distribs = implode("|", $_POST["distributors"]); 
$distribs  = mysql_real_escape_string($distribs ); 


$distribs = mysql_real_escape_string($_POST['distributors']);
$sql="UPDATE customers SET distributors = '$distribs'
                                            WHERE id='$id'";

这是我的选择:

  echo "<select name='distributors' multiple='multiple'>";

2 个答案:

答案 0 :(得分:1)

试试这个

echo "<select name='distributors[]' multiple='multiple'>";

答案 1 :(得分:1)

$_POST["distributors"];不是数组,implode();需要数组才能运行,

PHP.net Function for implode();

如果您的$_POST是正确的数组格式;然后implode会将数组转换为单个字符串。

如果你的$ _POST包含来自<select> </select>的信息,那么提交将是一个单独的字符串,可以插入数据库而无需implode();函数。

如果您确定以数组格式提交$ _POST。用于 DeDav 有人建议。

填充$ _POST时运行此命令。

  

的print_r($ _ POST [ '经销商'])

如果您使用多重选择。再次使用 DeDav 建议:

echo "<select name='distributors[]' multiple='multiple'>";