gpt4 book ai didi

php - CakePHP getLastInsertId() 返回零

转载 作者:行者123 更新时间:2023-11-29 01:55:45 26 4
gpt4 key购买 nike

我是 CakePHP 的新手,在获取最后插入的 ID 时遇到了问题。我的架构如下:

CREATE TABLE IF NOT EXISTS `markets` (
`id` int(11) NOT NULL,
`name` varchar(20) NOT NULL,
`region_code` varchar(5) NOT NULL,
`country_code` varchar(255) NOT NULL,
`language` varchar(255) NOT NULL,
`default_language` varchar(10) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

ALTER TABLE `markets`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `region_code` (`region_code`),
ADD KEY `locale` (`country_code`),
ADD KEY `language` (`language`);

ALTER TABLE `markets`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=8;

这是我的逻辑:

$this->loadModel('Market');
if( isset($this->request->data['Market']) ) {
$this->Market->set($this->request->data);
if( $this->Market->validates() ) {
$this->Market->save($this->request->data);
echo $this->Market->id; //displays zero
echo $this->Market->getLastInsertID(); //also displays zero
}
}

尽管在 MySQL 中一切看起来都不错,因为 id 会按预期自动递增。

附言我刚刚插入了另一条记录,这是返回的内容:

array (size=1)
'Market' =>
array (size=8)
'name' => string 'Japan' (length=5)
'region_code' => string 'JP' (length=2)
'country_code' => string 'JP' (length=2)
'language' => string 'ja_JP' (length=5)
'default_language' => string 'ja_JP' (length=5)
'modified' => string '2015-04-23 09:11:34' (length=19)
'created' => string '2015-04-23 09:11:34' (length=19)
'id' => string '0' (length=1)

Here's the saved data in phpMyAdmin

好的,所以现在我只是向市场模型添加了一个名为“getMarketLastInsertId”的函数,该函数将“country_code”(表中的唯一键)作为参数并返回最后一个 ID...谢谢

最佳答案

在你显示的建表语句中

`id` int(11) NOT NULL, 

实际上应该是

`id` int(11) NOT NULL AUTO_INCREMENT, 

id 是一个自增字段。所以我怀疑你关于字段被自动增量值填充的说法。

关于php - CakePHP getLastInsertId() 返回零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29823934/

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