在我的代码中,我使用methods
将数据插入MySQL
数据库。然后,该方法返回true
或false
。
如果method
返回true
我想使用lastInsertId()
来运行第二种方法。
像
if($db->insertMethod($data)){
$lastId = $db->lastInsertId();
$db->secondInsertMethod($lastId, $data2)
}
db.class.php
public function insertMethod($data) {
$db = new DB();
$insert = //Run SQL insert
if($insert > 0 ) {
return true;
}else{
return false;
}
}
public function lastInsertId() {
return $this->pdo->lastInsertId();
}
在这种情况下,$db->lastInsertId();
将返回0
。一种解决方法是让insertMethod
返回此而不仅仅是true
,但还有其他方法吗?
答案 0 :(得分:0)
编辑!
解决方案是正确的
data2是否链接到数据?
你也可以:
public function insertMethod($data, $data2) {
$db = new DB();
$insert = //Run SQL insert
if($insert > 0 ) {
$this->insertMethod(this->lastInsertId(), $data2);
return true;
} else {
return false;
}
}
或者data2是否链接到数据
public function insertMethod($data) {
$db = new DB();
$insert = //Run SQL insert
if($insert > 0 ) {
$data2 = // get data2
$this->insertMethod(this->lastInsertId(), $data2);
return true;
} else {
return false;
}
}
public function insertMethod($id, $data) {
// your code...
}
或
public function insertMethod($data, $id = null) {
$db = new DB();
if($id == null)
// code to insert without id
else {
$insert = //Run SQL insert
if($insert > 0 ) {
$data2 = // get data2
$this->insertMethod($data2, this->lastInsertId());
}
}
}
解决方案是正确的。为了让您了解您认为哪种情况最适合您的情况。