aw *_*rud 6 php sql oracle transactions rollback
出于习惯,我一直在我的应用程序代码中使用try/catch块来处理所有SQL查询,并在catch块的开头进行回滚.我也一直在承诺那些成功的.这是必要SELECT
的吗?它是否释放了数据库方面的东西?select语句不会改变任何数据,所以它似乎有点无意义,但也许有一些我不知道的原因.
例如
try {
$results = oci_execute($statement)
oci_commit($connection);
return $results;
}
catch {
oci_rollback($connection)
throw new SqlException("failed");
}
Run Code Online (Sandbox Code Playgroud)
SELECT
Oracle
(除非它们SELECT FOR UPDATE
)中的语句从不锁定任何记录,也不会隐式打开事务.
除非您DML
在交易中发布任何操作,否则无论您是提交还是回滚交易都无关紧要.