0

我有一个包含以下代码的脚本,用于将数据插入到 Oracle 表中:

$sql = "INSERT INTO EXAMPLE_TABLE (ID, FIELD, VAL) VALUES (:id, :test, :ok)"; 

$stid = oci_parse($conn, $sql);
//die("parsed ok");

oci_bind_by_name($stid, ":id", $id);
oci_bind_by_name($stid, ":test", $test);
oci_bind_by_name($stid, ":ok", $ok);

//die("params bound");

$result =@oci_execute($stid);

if(!$result)
{               
   $err = oci_error($stid);
   $error = $err['message']; 
   echo $error; die('end error');
}

echo oci_num_rows($stid) . " rows inserted.<br />";
die("inserted");

脚本运行良好,然后就停止了。我投入了一些死亡语句来查找脚本停止的位置。我能到达的最后一个地方是“die(“params bound”)”。

我已验证变量是否正常并且数据库连接有效。我还使用sqldeveloper手动连接到数据库,没有问题。

为什么这个脚本突然停止了?

4

1 回答 1

0

正如经常发生的那样,我在发布这个问题后立即有一个想法。我检查了我在 GUI 中打开了多少个连接,然后关闭了这些连接。

事实证明,我在 GUI 中手动运行的一些查询中进行了一些未提交的更改,我认为这会使脚本在 oci_execute 处停滞。回滚更改并重新启动连接后,脚本现在可以正常工作。

于 2013-04-12T23:33:45.833 回答