Поступаю следующим стандартным образом: PHP: $s = OCIParse($c, "begin proc1(:in1, :in2, :out1, :out2); end;"); OCIBindByName($s, ":in1", $in_var1); OCIBindByName($s, ":in2", $in_var2); OCIBindByName($s, ":out1", $out_var1); OCIBindByName($s, ":out2", $out_var2); OCIExecute($s, OCI_DEFAULT); Однако, переменные $out_var1 и $out_var2 в результате пусты. Сама процедура точно верна, т.к. обращение к ней же из Delphi проходит вполне результативно. В чём может быть проблема? Заранее спасибо.
Я бы посоветовал попробовать вставить прям в процедуру все IN параметры фу-ции. Может OCIBindByName не может понять на ввод или на вывод использовать некоторые переменные.
Но ведь всё равно нужно эти IN параметры как-то передать в неё! Это не константы, они из формы считываются.
Я бы попробовал сделать так: PHP: $s = OCIParse($c, "begin proc1(".$_FROM_FORMA_1.", ".$_FROM_FORMA_2.", :out1, :out2); end;"); OCIBindByName($s, ":in1", $in_var1); OCIBindByName($s, ":in2", $in_var2); OCIBindByName($s, ":out1", $out_var1); OCIBindByName($s, ":out2", $out_var2); OCIExecute($s, OCI_DEFAULT); И потом не забывайте что если ИН параметры не число то нужно заключать в одинарные кавычки, то есть к примеру так '".$_FROM_FORMA_1."'. Вообще посоветовал бы всегда использовать универсальный драйвер для работы с Б.Д., например такой как Zend_Db из Zend_Framework.