PHP OOP - 从两个函数返回 lastInsertId
Posted
技术标签:
【中文标题】PHP OOP - 从两个函数返回 lastInsertId【英文标题】:PHP OOP - Returning lastInsertId from two functions 【发布时间】:2015-06-28 08:10:07 【问题描述】:我是 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】:既然你已经知道问题所在,为什么不直接在你的第二个函数上设置一个条件,如果查询确实插入了一行,则只返回lastInsertId()
。例如
function createCompanyContact()
// execute the statement here
if($sth->rowCount()>0)
return $db->lastInsertId();
else
return NULL;
【讨论】:
以上是关于PHP OOP - 从两个函数返回 lastInsertId的主要内容,如果未能解决你的问题,请参考以下文章