Php 数组未插入到数据库中 沃尔沃汽车 萨博 欧宝 奥迪 Volvo1 萨博2 Opel3 奥迪
4.phpPhp 数组未插入到数据库中 沃尔沃汽车 萨博 欧宝 奥迪 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
<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) ");