これが私のハンドルの作成方法です
$this->_handle = new SQLite3($this->_dbname);
これは、dbクエリを作成する方法です(短縮):
$stmt = $this->_handle->prepare($sql);
// execute query
$result = $stmt->execute();
// get all results
while($row = $result->fetchArray(SQLITE3_ASSOC)){
$res[] = $row;
}
次に、最後に挿入された ID を取得したいと思います。私はこのようにしてみました:
public function last_insert_rowid()
{
$result = sqlite_last_insert_rowid($this->_handle);
var_dump($result);
echo '<pre>';
print_r($result);
echo '</pre>';
return $result;
}
次のエラーが表示されます。
警告: sqlite_last_insert_rowid() は、パラメーター 1 がリソースであると想定し、444 行目で指定されたオブジェクトは NULL です
編集:で開く必要があるため、これは機能しませんsqlite_open()
。
私もこのコードで試しました:
function last_insert_rowid(){
global $db;
$sql = "SELECT last_insert_rowid();";
$result = $db->ExecuteQuery($sql);
var_dump($result);
return $result;
//return ($db->last_insert_rowid());
}
次のエラー メッセージが表示されます。
NULL 警告: SQLite3Stmt::execute() [sqlite3stmt.execute]: ステートメントを実行できません: 制約が .. で失敗しました
エラーはこの行を指しています$stmt->execute();
最後に挿入した ID を取得するにはどうすればよいですか?