"Name2" [2]-6ren">
gpt4 book ai didi

php - 使用 foreach 写入数据库

转载 作者:行者123 更新时间:2023-11-29 05:13:20 25 4
gpt4 key购买 nike

我有三个数组,我想将它们写入数据库,我面临的问题是每当将值写入特定列时,该列的其余部分将留空。

$name_array = array(3) { [0]"Name1" [1]=>"Name2" [2]=> "Name3" } 
$roll_array = array(3) { [0]=>"1" [1]=>"2" [2]=>"3" }
$att_array = array(3) { [0]=>"Present" [1]=>"Present" [2]=>"absent" }

我在数据库中有三列 "NAME""ROLL""ATTENDANCE"我想将所有数组数据同时存储到数据库中。所以它应该是这样的

NAME      ROLL     ATTENDANCE
Name1 1 present
Name2 2 present
Name3 3 absent

这是我试过的代码,但它只是将每个值添加到列中,而将另一列留空。所以前三行只有 ROLLNO,接下来的三行只有 NAME,最后三行只有 ATTENDANCE。

$name_values = array();
$roll_values = array();
$att_values = array();


foreach ($name_array as $key => $name_values) {

$name_values = mysqli_real_escape_string($connection,$name_values);
$sql= "INSERT INTO `aclass12` (Name) VALUES ('$name_values')";
mysqli_query($connection,$sql);

}

foreach ($roll_array as $key => $roll_values) {
$roll_values = mysqli_real_escape_string($connection,$roll_values);
$sql= "INSERT INTO `aclass12` (RollNo) VALUES ('$roll_values')";
}

foreach ($att_array as $key => $att_values) {
$att_values = mysqli_real_escape_string($connection,$att_values);
$sql= "INSERT INTO `aclass12` (attendance) VALUES ('$att_values')";
}

我知道这不是正确的做法。以及如何做到这一点?

最佳答案

只需使用一个数组作为主数组,并使用该数组的键访问其他 2 个数组的数据。

然后在一个 INSERT 中插入所有数据

检查 INSERT 是否有效也是一个好主意,所以我添加了一些错误检查

foreach ($name_array as $key => $value) {

$name = mysqli_real_escape_string($connection,$value);
$roll = mysqli_real_escape_string($connection,$roll_values[$key]);
$att = mysqli_real_escape_string($connection,$att_array[$key]);

$sql = "INSERT INTO `aclass12`
(Name, RollNo, attendance)
VALUES ('$value', '$roll', '$att')";

$res = mysqli_query($connection,$sql);
if ( $res === FALSE ) {
echo mysqli_error();
exit;
}

}

关于php - 使用 foreach 写入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36555332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com