Php 如何使用foreach插入数据库?
嗨,我有个小问题。我无法插入数据库数组。。。这是我的密码Php 如何使用foreach插入数据库?,php,mysql,Php,Mysql,嗨,我有个小问题。我无法插入数据库数组。。。这是我的密码 $qurum1 = implode('|',$_POST['qurum1']); $qurum = explode('|', $qurum1); foreach ($qurum as $value) { $query2 = "INSERT INTO test (data_id, col2) VALUES ('$id', '$value')"; } 此代码仅插入最后一个值您还需要在foreach()函数中添加MySQL查询: forea
$qurum1 = implode('|',$_POST['qurum1']);
$qurum = explode('|', $qurum1);
foreach ($qurum as $value) {
$query2 = "INSERT INTO test (data_id, col2) VALUES ('$id', '$value')";
}
此代码仅插入最后一个值您还需要在foreach()函数中添加MySQL查询:
foreach ($qurum as $value) {
$query2 = "INSERT INTO test (data_id, col2) VALUES ($id, $value)";
mysqlExecute($query2);
}
请注意,mysqlExecute()
不存在,您需要使用自己的函数来执行查询
还请注意,不建议在循环中执行SQL语句,因为它会在执行多个查询时降低性能。如果你的网页没有太多的负载,或者你只是在练习,这两种方法都可以。试试这个
<form method="post">
<input id="value1" value="value1" name="qurum1[]" type="checkbox">
<input id="value2" value="value2" name="qurum1[]" type="checkbox">
<input value="21" name="id" type="hidden">
<input type="submit">
</form>
<?php
if(isset($_POST['qurum1'])){
$invite = $_POST['qurum1'];
$id = $_POST['id'];
$dbObj=mysqli_connect("$dbhost","$dbusername","$dbpasswd","$dbname") or die('Could not connect to DB : ' .mysqli_connect_error());
foreach ($qurum as $value) {
$query2 = "INSERT INTO test (data_id, col2) VALUES ('$id', '$value')";
$ins_sql = mysqli_query($dbObj,$query2);
}
}
?>
您必须在循环中实际执行查询。了解防止SQL的准备语句injection@Jens-因为您多次调用数据库都不成功,而执行查询最昂贵的部分是连接到数据库“您的注释非常有用”。。。链接到学校的人说。哦,具有讽刺意味的是。为什么您要多次执行查询?只需获取循环中的值并在一次快照中插入。为什么这个答案有两次否决票?有人不喜欢我的解决方案。从性能的角度来看,这是不正确的,但它回答了OP的问题。这不是意见的问题,而是回答问题的问题。OP提供了代码。OP的循环是错误的。是的@Ciprian您的解决方案会修复OP的problem@boroboris我不这么认为,这意味着所有记录的id都是相同的。我已经用mysqli_connect()更改了代码。我已经有了所有的$vars,我只需要将$qurum数组正确插入到数据库中。请在$qurum变量中发布数据。$\u post['qurum1']从复选框qurum1[]获取值,因此$qurum1类似于1 | 2 | 3…@JabbarGuliyev$qurum1是所有id的列表吗?