我尽可能简化了我的代码。
我的问题是所选选项中的体育场值与程序绑定错误。它总是返回'F'。但是,我找不到任何解决办法。
$stid = oci_parse($conn,"SELECT Stadium_Name FROM Stadium");
oci_execute($stid);
echo "<select name='stadium'>";
echo "<option value='' ></option>";
if ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
$name = $row['STADIUM_NAME'];
echo "<option value='" . $name . "'>" . $name . "</option>";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)){
$name = $row['STADIUM_NAME'];
echo "<option value='" . $name . "'>" . $name . "</option>";
}
}
$var=$_POST['stadium'];
$stid = oci_parse($conn, "begin Package.enter_team(:stadium,:result); end;");
oci_bind_by_name($stid, ":cursbv", $curs, -1, OCI_B_CURSOR);
oci_bind_by_name($stid,':stadium',$var);
oci_bind_by_name($stid,':result',$result,8);
oci_execute($stid);
oci_execute($curs);
MY PL / SQL程序:
PROCEDURE enter_team(
stadium IN VARCHAR2,
a_RESULT OUT CHAR)
IS
BEGIN
insert into Belongsto values(stadium);
a_RESULT:='T';
EXCEPTION
WHEN OTHERS THEN
a_RESULT:='F';
ROLLBACK;
END enter_team;