我有一些PHP代码通过OCI8库写入Oracle数据库。我有一个不会以编程方式执行的insert语句 - 如果我打印出语句并通过SquirrelSQL运行它会成功插入数据。我在代码中的其他地方删除并选择语句,它完美地工作。可能是什么问题?正如我所说,如果我打印$ om_query并手动运行它会成功插入。我没有收到任何其他错误。
$om_query = "INSERT INTO DB.TABLE(R1,R2) VALUES(V1,V2)";
$s2 = oci_parse($conn, $om_query);
$qs = oci_execute($s2);
oci_commit ($conn);
if(!$qs){
$ma = oci_error();
$failedqueries .= '<br /><br />MAINQ: ' . $om_query . '<br /><b>OCI_ERROR_MSG: </b>' . $ma['message'];
}
oci_error()
不附加任何有用的内容。
答案 0 :(得分:-2)
检查您是否在受影响的表上没有打开的事务。 PL可能正在尝试删除插入的记录。
在Oracle中,您必须在修改数据后执行COMMIT或ROLLBACK操作(无论是通过插入,更新还是删除)。