習慣から、アプリケーション コードですべての SQL クエリに対して try/catch ブロックを使用し、catch ブロックの先頭にロールバックを使用してきました。私はまた、成功したものをコミットしています。これはsに必要SELECT
ですか?データベース側で何かを解放しますか? selectステートメントはデータを変更していないので、やや無意味に思えますが、おそらく私が気付いていない何らかの理由があります.
例えば
try {
$results = oci_execute($statement)
oci_commit($connection);
return $results;
}
catch {
oci_rollback($connection)
throw new SqlException("failed");
}