我第一次遇到奇怪的问题。我正尝试在自定义自动递增值(例如00001,00002,00003)的数据库中插入简单记录,但无法获得递增值。每个记录都会使用相同的最大数量更新。CakePHP使用循环创建MySql数据库中保存数组数据
控制器代码
public function dobulk() {
for($i=0;$i<5;$i++) {
$data = array();
$this->Tmp->create();
$data['Tmp']['invoice_no'] = $this->Tmp->get_no();
$data['Tmp']['invoice_date'] = '2013-12-11';
$this->Tmp->save($data);
}
}
型号代码
public function get_no() {
$strSql = "SELECT
LPAD(IFNULL(RIGHT(MAX(invoice_no),5),0) + 1,5,'0') AS max_id
FROM tmps
;";
$result = $this->query($strSql);
$invoice_no = $result[0][0]['max_id'];
return $invoice_no;
}
数据库表格
CREATE TABLE `tmps` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`invoice_no` varchar(20) DEFAULT NULL,
`invoice_date` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1
感谢进阶ANCE。
看起来像这样应该被标记为MySQL而不是CakePHP。你可能会得到更多的帮助,因为这是一个MySQL问题。 – Dave