Php 数组未插入到数据库中 沃尔沃汽车 萨博 欧宝 奥迪 Volvo1 萨博2 Opel3 奥迪

Php 数组未插入到数据库中 沃尔沃汽车 萨博 欧宝 奥迪 Volvo1 萨博2 Opel3 奥迪,php,select,Php,Select,4.php <form action="4.php" method="POST"> <select name="select2[]" multiple> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="opel">Opel</option> <option

4.php

<form action="4.php" method="POST">
<select name="select2[]" multiple>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>
<select name="select[]" multiple>
  <option value="volvo1">Volvo1</option>
  <option value="saab2">Saab2</option>
  <option value="opel3">Opel3</option>
  <option value="audi4">Audi4</option>
</select>
<input type="submit" name="sub" value="submit">
</form>
尝试
内爆(“,”,$r)
而不是
内爆(“,$r)


你必须像@jetawe说的那样用逗号分隔,但我认为他的查询不起作用。我建议您通过两个查询来保持简单:

<?php
mysql_connect("localhost", "root", "");
$db=mysql_select_db("test");
if(isset($_POST['sub'])) {

$r=$_POST['select2'];
$f=$_POST['select'];

    $val1  = implode(",", $r);// to save it as string

    $val2  = implode(",", $f);

    $r=mysql_query("insert into test1 (test,test1) values ('$val1','$val2') ");
}

// and to retrieve data 
explode(",", $result); // to convert it from string to array
但是我必须提到,命名变量应该做得更好,以避免混淆。努力命名变量,以减少代码中的错误。
此外,还必须使用另一种方式连接和查询数据库。

这里的问题到底是什么?是否要插入多行?是否无法插入单行?请详细说明。嗯,您只在数据库上执行一个
INSERT
语句,所以它只插入一行。您还显式地使用
内爆()
将数组转换为单行的单个值。听起来您想要做的是在数组中循环并执行多个
mysql\u query()
调用,每一行插入数据库一个。(另外,你肯定想研究使用
mysqli
而不是
mysql
,以及使用预先准备好的语句和参数化查询。目前你的代码容易受到SQL注入攻击。)@David你能给我举些例子解释一下吗,因为我是这个领域的新手。我的PHP有点生疏,但谷歌搜索“PHP数组到数据库”发现了以下内容,这可能是一个开始:
<?php
mysql_connect("localhost", "root", "");
$db=mysql_select_db("test");
if(isset($_POST['sub'])) {

$r=$_POST['select2'];
$f=$_POST['select'];

    $val1  = implode(",", $r);// to save it as string

    $val2  = implode(",", $f);

    $r=mysql_query("insert into test1 (test,test1) values ('$val1','$val2') ");
}

// and to retrieve data 
explode(",", $result); // to convert it from string to array
   $val1  = implode("', '", $r);  // add quotes
   $val2  = implode("', '", $f);

   $result_1 = mysql_query("insert into test1 (test) values ($val1) ");
   $result_2 = mysql_query("insert into test1 (test1) values ($val2) ");