0

これらのオプションを使用してクラスを初期化します。

$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() は関数ではないと言われました。だからうまくいきません。

何か案が?おそらく間違ったオプション?ありがとうございました

4

1 に答える 1

4

ではなく、PDOオブジェクトにありますPDOStatement

http://php.net/manual/en/pdo.lastinsertid.php

于 2013-05-16T15:20:53.480 に答える