PDOの基本を理解しています。
ただし、挿入された行のIDを取得しようとしていますが、次を使用しています。
$query = $system->db->prepare("INSERT INTO {$this->_table} (name,description) VALUES (:name,:description)");
$query->execute(array('name'=>$name,'description'=>$description));
私が出会ったチュートリアルはトランザクションに関するものですが、私はトランザクションを使用していません!
あなたはおそらく lastInsertId を探しています。 「最後に挿入された行またはシーケンス値のIDを返します」。
$insertedId = $system->db->lastInsertId() ;
トランザクションを使用するときは注意してください。
lastInsertedId
を呼び出した後にcommit
を呼び出すと、lastInsertedId
はIDの代わりに0を返します。 lastInsertedId
の直後でexecute
の前にcommit
を呼び出します。
$this->db->beginTransaction();
$this->stmt->execute();
$id = $this->db->lastInsertId();
$this->db->commit();