2011-12-07 78 views

回答

1

如果您使用的是「表」(這意味着你的類擴展Zend_Db_Table_Abstract),那麼最後插入主鍵用生成的密鑰調用Zend_Db_Table_Abstract::insert - 方法時,會自動返回:

$personTable = new My_Model_DbTable_Person() 
$addressTable = new My_Model_DbTable_Address() 

$personId = $personTable->insert(array(
    "name" => "John", 
    "familyname" => "Doe", 
)); 

$addressTable->insert(array(
    "person_id" => $personId, 
    "street" => "Some Street", 
    "city" => "Gotham City", 
)); 

有更多關於Zend的方法參考Zend_Db_Table

如果您直接使用數據庫適配器(類擴展爲Zend_Db_Adapter_Abstract,使用Zend_DB::factory實例化或使用appl實例化數據庫資源),那麼有一個更靈活一點的方法Zend_Db_Adapter_Abstract::lastInsertId。有關更多信息,請參見Zend_Db_Adapter的Zend參考。

$db = Zend_Db::factory(...); 

$db->insert("person", array(
    "name" => "John", 
    "familyname" => "Doe",  
)); 

$personId = $db->lastInsertId(); 

$db->insert("address", array(
    "person_id" => $personId, 
    "street" => "Some Street", 
    "city" => "Gotham City", 
)); 
相關問題