2013-05-16 53 views
-1

我初始化這些選項類:lastInsertId()不工作一個PDO對象,在插入操作

$options = array(
     PDO::ATTR_PERSISTENT => true, 
     PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION 
); 

然後我這樣的表現

$this->sql = trim($sql); 
$this->bind = $this->cleanup($bind); 
$this->error = ""; 

try { 
    $pdostmt = $this->prepare($this->sql); 
    if($pdostmt->execute($this->bind) !== false) { 
     if(preg_match("/^(" . implode("|", array("select", "describe", "pragma")) . ") /i", $this->sql)) 
      return $pdostmt->fetchAll(PDO::FETCH_ASSOC); 
     elseif(preg_match("/^(" . implode("|", array("delete", "update")) . ") /i", $this->sql)) 
      return $pdostmt->rowCount(); 
     elseif(preg_match("/^(" . implode("|", array("insert")) . ") /i", $this->sql)) 
      return $pdostmt->lastInsertId(); 
} 

那是因爲後一個INSERT我需要返回最後插入的ID。 但我被告知lastInsertId()不是函數。 所以它不起作用。

有什麼想法嗎?也許錯誤的選擇? 謝謝

+0

這是OOP。爲什麼要將每一個信息填充到一個單一的功能?爲什麼不只在需要rowCount時調用rowCount,還需要單獨調用? –

+0

你是對的,我從一個在線圖書館得到的代碼,我只是在** insert **中修改它,如果僅僅是因爲需要。當我有更多的時間來更新它,並使它更苗條,我會這樣做;)無論如何感謝您的通知! – axel

回答