-1

我正在使用CakePHP 2.3,我想按如下方式保存数据:

$insertUser  = array(
    'Name' => $Name,
    'LastName' => $lastName,
    'password' => $password,
    'email' => $email,
    'TimeStamp' => $presentTime,
    'RefererUserId' => $refererId // set the referer user id
);

$this->SystemUser->saveAll($insertUser) // save record in table.

上面的代码不起作用。我尝试了另一种方法,例如:

  $this->SystemUser->query("INSERT INTO system_users(Name,LastName,password,email,TimeStamp,RefererUserId) VALUES ('{$Name}','{$lastName}','{$password}','{$email}','{$presentTime}','{$refererId}')"); 

我现在如何获取最后插入的 id?我曾经getLastInsertId()获取最后插入的 id,如下所示:

$lastid = $this->SystemUser->getLastInsertId(); 

但这似乎不起作用。

4

2 回答 2

0

$insertUser应该是以下

$insertUser['SystemUser']  = array(
  'Name' => $Name,
  'LastName' => $lastName,
  'password' => $password,
  'email' => $email,
  'TimeStamp' => $presentTime,
  'RefererUserId' => $refererId // set the referer user id
);

然后你应该像这样保存数据

if($this->SystemUser->save($insertUser)) {
    $lastid = $this->SystemUser->getLastInsertId();
} else {
   debug($this->SystemUser->validationErrors); die();
}

这可能会为您提供所需的信息(当然,假设由于数据无效而没有保存):

debug($this->SystemUser->validationErrors); die();

而已。

于 2015-01-30T12:38:43.530 回答
0

请尝试以下代码。SystemUser假定为您的型号名称。

$this->user_data = array(
        'SystemUser' => array(
                  'Name' => $Name,
                  'LastName' => $lastName,
                  'password' => $password,
                  'email' => $email,
                  'TimeStamp' => $presentTime,
                  'RefererUserId' => $refererId // set the referer user id
        ));

    if ($this->SystemUser->save($this->user_data)) {
       $lastid = $this->SystemUser->getLastInsertId();
    } else {
       // do something
    }
于 2015-02-02T09:48:40.390 回答