我第一次遇到奇怪的問題。我正嘗試在自定義自動遞增值(例如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