Success message when registering in the oracle database but it doesn’t work: using php

Asked

Viewed 20 times

0

I’m using the oracle bank. When I sign up for an Employee, the page displays success when registering. But when I check the bank, it doesn’t appear there. Did my code have some logic error that I didn’t realize. Follow the code of the DAO module.

<?php
class CrudDAO {

    public function buscarPorId($id){
        $sql = "
select *
from pfj.employees
where id = ?
        ";

        return query($sql, [$id], QUERY_PRIMEIRO);
    }

    public function existePorEmail($empId, $emailExistente){
        $listaWhere = [];
        $parametros = [];

        $listaWhere[] = 'employee_id = :empid';
        $parametros['empid'] = $empId;

        if (isset($emailExistente)) {
            $listaWhere[] = 'email <> :email';
            $parametros['email'] = $emailExistente;
        }

        $sqlWhere = implode(' and ', $listaWhere);

        $sql = "
select count(*)
from pfj.employees
where $sqlWhere
        ";

        return (bool)query($sql, $parametros, QUERY_PRIMEIRO_VALOR);
    }

    public function salvar($registro) {
//        $registro = array_filter_keys($registro, [`empid`, `nome`, `sobrenome`, `email`, `celular`, `hiredate`, `jobid`, `salary`]);
//        if (isset($registro['empid'])) {
//
//            $sql = "update pfj.employees
//                    set employee_id  = :empid,
//                       first_name   = :nome,
//                       last_name    = :sobrenome,
//                       email        = :email,
//                       phone_number = :celular,
//                       hire_date    = :hiredate,
//                       job_id       = :jobid,
//                       salary       = :salary
//                    where employee_id = :empid";
//
//            query($sql, $registro);
//            
//        }else {
            $registro = array_filter_keys($registro, [`empid`, `nome`, `sobrenome`, `email`, `celular`, `hiredate`, `jobid`, `salary`]);
            if (isset($registro['empid'])) {
            $sql = "insert into pfj.employees
                  (employee_id,
                   first_name,
                   last_name,
                   email,
                   phone_number,
                   hire_date,
                   job_id,
                   salary)
                   values
                    (:empid, :nome, :sobrenome, :email, :celular, :hiredate, :jobid, :salary)
                ";

            query($sql, $registro);
        }
    }
    }

But if I use an id of a registered Employee, it displays the error message. That part is at least ok.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.