Я не могу запустить 2 команды oci_parse с php if, else оператор и oci_execute - PullRequest
0 голосов
/ 20 апреля 2019

Я создаю форму с 3 кнопками, чтобы при нажатии одной кнопки отправки типа выполнялась определенная команда SQLPLUS, а при нажатии другой запускалась другая команда SQL.Это кнопки «Зарегистрировать», «Обновить» и «Удалить» (относящиеся к записям в некоторой базе данных SQLPLUS).

Однако только первая кнопка отвечает и запускает свой сценарий SQL, тогда как для других 2 страница PHP показывает знак буферизации (браузер chrome) и не выполняет сценарий SQL.

Это фрагмент кода, в котором, я думаю, кроется проблема:

$query1 = "INSERT INTO employees (empno, name, deprt, sal) VALUES (:x1, :x2, :x3, :x4)";
$query2 = "UPDATE employees SET empno=:y1, name=:y2, deprt=:y3, sal=:y4 WHERE empno=:y1";
$query3 = "DELETE from employees WHERE empno=:z1";

$a1 = oci_parse($con, $query1);
$a2 = oci_parse($con, $query2);
$a3 = oci_parse($con, $query3);

oci_bind_by_name($a1, ':x1', $empno);
oci_bind_by_name($a1, ':x2', $name);
oci_bind_by_name($a1, ':x3', $deprt);
oci_bind_by_name($a1, ':x4', $sal);

oci_bind_by_name($a2, ':y1', $empno);
oci_bind_by_name($a2, ':y2', $name);
oci_bind_by_name($a2, ':y3', $deprt);
oci_bind_by_name($a2, ':y4', $sal);

oci_bind_by_name($a3, ':z1', $empno);

if (isset($_REQUEST['Submit'])) {
    if ($_REQUEST['Submit'] == 'Register') {
        $r1 = oci_execute($a1);
    }
    if ($_REQUEST['Submit'] == 'Update') {
        $r2 = oci_execute($a2);
    }
    if ($_REQUEST['Submit'] == 'Delete') {
        $r3 = oci_execute($a3);
    }
}

"$ a1" вставляет запись.

«$ a2» обновляет запись.

«$ a3» удаляет запись.

Как решить эту проблему?

...