PHP OOP - 从两个函数返回lastInsertId

时间:2015-06-28 08:10:08

标签: php oop encapsulation lastinsertid

我是OOP的新手,对于返回具有相同变量名称的函数有疑问,例如:

class CompanyManager
{
   function createCompany()
   {
       // PDO - create the company
       return $db->lastInsertId();
   }

   function createCompanyContact()
   {
       // PDO - create the contact
       return $db->lastInsertId();
   }

}

问题是我首先调用createCompany,获取它的ID并在创建联系人时使用它。但是在createCompanyContact中,如果查询因任何原因失败,则返回companyID,因为它是先前从createCompany中的数据库返回的值,因此仍然设置。我该如何解决这个问题?

我考虑过为联系人创建一个单独的类,但是如果在一个类中我们只能使用一次lastInsertID(因为该值会渗透到其中的任何其他函数),它肯定有点受限制吗?

1 个答案:

答案 0 :(得分:1)

既然您已经知道了问题,那么为什么不继续在第二个函数上添加一个条件,只有在查询确实插入一行时才返回lastInsertId()。例如

 function createCompanyContact()
   {
       // execute the statement here
       if($sth->rowCount()>0)
         return $db->lastInsertId();
       else
         return NULL;
   }