2

このコードは、負荷の高いページでも、レコードの最後に挿入されたIDを提供しますか?

  db = Zend_Db_Table::getDefaultAdapter();
  $db->insert($this->_name, $fields_values);
  $idAddress = $db->lastInsertId($this->_name);

よろしくアンドレア

4

3 に答える 3

2

私はこれを使用しています...

db = Zend_Db_Table::getDefaultAdapter();
$lastInsertId = $db->insert($this->_name, $fields_values);
于 2012-07-04T06:12:58.223 に答える
1

メソッドはのZend_Db_Adapter_Abstract::lastInsertId()プロキシPDO::lastInsertId()です。ドキュメントによると:

PDO :: lastInsertId —最後に挿入された行のIDまたはシーケンス値を返します

ノート:

基盤となるデータベースが自動インクリメントフィールドまたはシーケンスの概念をサポートしていない可能性があるため、このメソッドは、異なるPDOドライバー間で意味のあるまたは一貫した結果を返さない場合があります。

今、あなたは知っています。あなた自身のリスクとしてそれを使用してください!

于 2012-07-03T15:55:35.623 に答える
0
public function saveData(array $data) {
    $this->_setName('user');

    // this will return all field name for user table in $field variable
    $fields = $this->info($this->getConstCol());

    // By this foreach loop we will set data in $data array
    foreach ($data as $field => $value) 
    {
        if (!in_array($field, $fields)) 
        {
            unset($data[$field]);
        }
    }
    // It will call insert function of (Zend_Db_Table_Abstract Parent of Zend_Db_Table)
    // It will return $pkData which is primary key for user table

    return $this->insert($data); // It will return last insert ID
 }
于 2012-07-04T10:48:14.960 に答える