2011-12-07 62 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", 
)); 
相关问题