我正在数组内爆炸数据,称为以下内容:
["Levels_SanctionLevel_array"]=>
string(14) "IR01,IR02,IR03"
我需要分解这些数据并将每个值作为 mysql 内的一行输入。比如
pri_id value
---------------
01 IR01
02 IR02
03 IR04
现在我陷入困境的是: 上面列出的数组可以有 1 个值、3 个值(现在我显示三个值)或 5 个值,并且我不想在数据库中输入 NULL 值。
$data = explode(',',$your_string);
foreach ($data AS $value) {
// INSERT INTO DB
}
一个简单的循环可以正常工作,但存在对数据库进行多次查询的缺点:
$str = "IR01,IR02,IR03";
$vals = explode(',', $str);
foreach ($vals AS $value) {
// insert into database
}
由于数据库操作是比在 PHP 中构建查询更重要的瓶颈,因此我会选择为单个查询生成 SQL 代码,如下所示:
$str = "IR01,IR02,IR03";
$vals = explode(',', $str);
$query = 'INSERT INTO my_data VALUES ';
foreach ($vals as $value) {
$query .= "('', '".$value."'),";
}
$query = rtrim($query, ',');
// insert into database
为什么不在数组上使用迭代器来构造 sql 查询? 这样,您将只插入数组中尽可能多的元素。
就像上面的答案。 我想我们是同时回答的。
假设你的主数组是
$data
:
foreach ($data as $values)
{
$value = explode(",", $values);
foreach ($value as $v)
{
$sql = "INSERT INTO table(value) VALUES('$v')";
}
}