gpt4 book ai didi

mysql - 使用 insert_batch 插入数据

转载 作者:行者123 更新时间:2023-11-29 06:46:27 25 4
gpt4 key购买 nike

我使用以下语句通过 codeigniter 在 mysql 中插入数据。

$this->db->insert_batch($table, $query);  

$query 是动态生成的,每个数组元素上可以有不同数量的列

也许元素的数量可能因条件而异

    array (
0 => array(
'column1'=>'insert1',
'column2'=>'insert2'
),
1 => array(
'column1'=>'insert1';
'column2'=>'insert2',
'column4'=>'insert4'
)
)

这会导致错误或从默认情况下处理 codigniter 吗?

我正在按照下面的方式构建查询

foreach ($sql_xml as $children) {
$children = $this->xml2array($children);
foreach ($children as $index => $child) {
if ($child != 'feed_id') {
$keys[$index] = $child;
}
}
}

switch (strtolower($this->config[0]->affiliate)) {
case 'case1':
$target_xml = $target_xml->productItems;
break;
case 'case2':
$target_xml = $target_xml;
break;
default :
break;
}

$query = array();
$data = array();
foreach ($target_xml as $feeds) {
$feeds = $this->xml2array($feeds);
$columns = new RecursiveIteratorIterator(new RecursiveArrayIterator($feeds));
foreach ($columns as $index => $column) {
if (array_key_exists($index, $keys)) {
if($column != ''){
$data[$keys[$index]] = $column;
$data['feed_id'] = $this->id;
}
//*TODO //$data['affiliate'] = "'.$this->config[0]->affiliate.'";
}
}
$query[] = $data;

}


if (count($query > 0)) {
foreach ($query as $t){

$this->db->insert($table, $t);
}
}

最佳答案

数组需要有相同数量的“列”。
所以我建议如下(如果没有数据,则将某些列设置为 null):

array (
0 => array(
'column1' => 'insert1',
'column2' => 'insert2',
'column3' => null,
'column4' => null
),
1 => array(
'column1' => 'insert1',
'column2' => 'insert2',
'column3' => 'insert3',
'column4' => 'insert4'
)
)

此外,您的语法无效并且会导致错误,因为您在插入的第一列中使用 ; 而不是 ,

关于mysql - 使用 insert_batch 插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18452135/

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