PHP脚本停止在oci_execute

时间:2013-04-12 23:27:25

标签: php oracle10g

我有一个脚本,其中包含以下代码,用于将数据插入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手动连接到数据库,没有问题。

为什么这个剧本突然失速?

1 个答案:

答案 0 :(得分:0)

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

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