我嘗試使用codeigniter在我的MySQL表中插入數據。Codeigniter批量插入查詢
首先,我從配置XML中檢索列,其中我應該插入數據以及應該從另一個XML返回插入值的目標節點。
foreach ($sql_xml as $children) {
foreach ($children as $index => $child) {
if ($child != 'feed_id') {
$keys[] = $index;
$into[] = $child; //this holds the table columns
}
}
}
然後我檢索我想要插入的每行多個值。
$products = array();
$data = array();
foreach ($target_xml as $feeds) {
$feeds = $this->xml2array($feeds); //SimpleXMLObject to array
$columns = new RecursiveIteratorIterator(new RecursiveArrayIterator($feeds)); //get all recursive iteration
foreach ($columns as $index=>$column) {
if (in_array($index, $keys)) { //here I get the values on matching nodes
$data[] = $column;
}
}
$products[] = $data;// this are the datas which should be inserted
}
這裏應該來插入:我一直在尋找具有相當不錯的解決方法文檔如果插入的是在我的情況是在流動產生匹配鍵的關聯數組。
$this->db->insert_batch('mytable', $products);
的問題是into
數組,它包含了目標列,我不知道如何在我的產品陣列推主題。
你的示例代碼對我來說並不是很清楚,但無論如何,'columnName'應該用作鍵,值是該鍵的值,所以它應該看起來像這樣$ Products = array(array('id '=> 1,'name'=>'Something'),array('id'=> 2,'name'=>'AnotherProduct')); – ahmad
你可以使用print_r或var_dump來確保你的數據看起來沒有問題,然後把它扔在 - > insert_batch – ahmad
謝謝你的反饋,所以問題是下面的鍵是在一個單獨的數組$到 – fefe