我有一个脚本,其中包含以下代码,用于将数据插入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手动连接到数据库,没有问题。
为什么这个剧本突然失速?
答案 0 :(得分:0)
正如经常发生的那样,我在发布这个问题后立刻就有了。我检查了在GUI中打开了多少个连接,然后关闭了连接。
事实证明,我在GUI中手动运行的某些查询中有一些未提交的更改,我认为这会使脚本停止在oci_execute。回滚更改并重新启动连接后,脚本现在正常工作。