PHP OOP-从两个函数返回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一次(因为该值会渗透到其中的任何其他函数中),这肯定有点有限?

既然你已经知道这个问题了,为什么不继续对你的第二个函数设置一个条件,如果查询确实插入了一行,那么只返回lastInsertId()呢。例如

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

最新更新