我试图从一个表复制多个行到另一个,但它只保存我选择的最后一个条目。当我打印所有显示的数据时。我正在复制的表没有设置auto_increment,这是我为什么猜测,所以现在我感到困惑。CakePHP没有正确保存条目
foreach($this->request->data['Order']['archive_value'] as $orderid){
$data = $this->Order->query("select * from orders where orderid = '$orderid'");
$newdata = array(
'ArchivedOrder' => array(
'orderid' => $data[0]['orders']['orderid'],
'id' => $data[0]['orders']['id'],
'order_status' => $data[0]['orders']['order_status'],
'email' => $data[0]['orders']['email'],
'total' => $data[0]['orders']['total'],
'fullName' => $data[0]['orders']['fullName'],
'address' => $data[0]['orders']['address'],
'city' => $data[0]['orders']['city'],
'state' => $data[0]['orders']['state'],
'zip' => $data[0]['orders']['zip'],
'created' => $data[0]['orders']['created'],
'modified' => $data[0]['orders']['modified']
));
print_r($newdata); //this shows every entry that I look up, but it's not saving them properly
$this->loadModel('ArchivedOrder');
$this->ArchivedOrder->save($newdata);
///$this->Order->query("delete from orders where orderid = '$orderid'");
}
当我的phpMyAdmin转储表的结构这是显示
CREATE TABLE `archived_orders` (
`orderid` int(10) default NULL,
`id` int(10) default NULL,
`order_status` varchar(20) default NULL,
`email` varchar(50) default NULL,
`total` varchar(50) default NULL,
`fullName` varchar(60) default NULL,
`address` varchar(50) default NULL,
`city` varchar(50) default NULL,
`state` varchar(50) default NULL,
`zip` varchar(15) default NULL,
`created` datetime default NULL,
`modified` datetime default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
没有工作。我最终只是使用$ this-> ArchivedOrder-> query(“insert into ...”)来使它工作。 – user1443519
@ user1443519 - 不要使用“insert into ...”学会先使用Cake正确的方法。 – Dave