Функция Oracle работает в сетке данных, но не по php - PullRequest
0 голосов
/ 31 октября 2019

Мне нужно использовать функцию для вставки данных в Oracle. Это не мой выбор.

У меня есть функция

$toBind = [..here are all properties names];
        $connection = $this->getConnection();
        $connection->beginTransaction();
     try{
         $sql = "declare
                patientID number :=0;
                begin
                    patientID := mita.AddPatient(:lastName, :firstName,
                    TO_DATE(:dob, 'yyyy/mm/dd:hh24:mi:ss'), :gender, :title, :mobilePhone, :email, :address1,
                    :address2, :suburb, :state, :postcode, :medicalNo, :irn,
                    TO_DATE(:medicareExp,'yyyy/mm/dd:hh24:mi:ss'), :veteran, :nextOfKin);
                    commit;
                    update returnvalues set returnvalue = patientID where returnid=3;

                end;
";
         $stmt = $connection->prepare($sql);

         foreach ($toBind as $param){
             $value = (isset($$param) ? $$param : ( (isset($d->{$param}) && !empty(trim($d->{$param}))) ? $d->{$param} : null) );
             $stmt->bindParam($param, $value);
         }


         $result = $stmt->execute();
         $connection->commit();
         $sql = "select returnvalue as patId from returnvalues where returnid=3";
         $stmt = $connection->prepare($sql);
         $stmt->execute();
         $row = $stmt->fetch();

         return (!empty($row) ? $row['PATID']: null);
     }catch(\Exception $e){
         $connection->rollBack();
         throw $e;
     }

Когда я получаю этот запрос к сетке данных, он вводит правильные данные. Когда я использую php с теми же данными, он создает новую строку, но все поля вместо автоматического увеличения равны нулю. Перед выполнением я проверил параметры в $stmt и данные были правильно связаны.

Я использую библиотеку DBAL из Syfmony 4. База данных - Oracle. Заранее благодарим за любые подсказки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...