How to view the SQL executed by php when using the functions "prepare()" and "execute()"?

Asked

Viewed 230 times

0

Hello need to echo or print the SQL running from the function below. The goal is to visualize how the SQL will look when the values of "?" replaced. Does anyone know how to do this?

public Function insert(Employdoto $employTO) {

    $sql = "INSERT INTO empregado VALUES(NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW())";

    $connection = $this->dataSourceMySQL ->openConnection();

    try {

        $statement = $connection ->prepare($sql);


        $dia = $empregadoTO ->getDia();
        $mes = $empregadoTO ->getMes();
        $ano = $empregadoTO ->getAno();

        $dataNascimento = $ano . '-' . $mes . '-' . $dia;                        

        $statement ->bindValue(1, $empregadoTO ->getNome(), PDO::PARAM_STR);
        $statement ->bindValue(2, $empregadoTO ->getSobrenome(), PDO::PARAM_STR);
        $statement ->bindValue(3, $empregadoTO ->getCpf(), PDO::PARAM_STR);
        $statement ->bindValue(4, $dataNascimento, PDO::PARAM_STR);
        $statement ->bindValue(5, $empregadoTO ->getIdEstadoCivil(), PDO::PARAM_INT);
        $statement ->bindValue(6, $empregadoTO ->getIdEscolaridade(), PDO::PARAM_INT);            
        $statement ->bindValue(7, $empregadoTO ->getSexo(), PDO::PARAM_STR);
        $statement ->bindValue(8, $empregadoTO ->getFoto(), PDO::PARAM_STR);
        $statement ->bindValue(9, $empregadoTO ->getEmail(), PDO::PARAM_STR);
        $statement ->bindValue(10, $empregadoTO ->getSenha(), PDO::PARAM_STR);
        $statement ->bindValue(11, $empregadoTO ->getCep(), PDO::PARAM_STR);
        $statement ->bindValue(12, $empregadoTO ->getEstado(), PDO::PARAM_STR);
        $statement ->bindValue(13, $empregadoTO ->getCidade(), PDO::PARAM_STR);
        $statement ->bindValue(14, $empregadoTO ->getBairro(), PDO::PARAM_STR);
        $statement ->bindValue(15, $empregadoTO ->getTelefone(), PDO::PARAM_STR);
        $statement ->bindValue(16, $empregadoTO ->getCelular(), PDO::PARAM_STR);
        $statement ->bindValue(17, $empregadoTO ->getNewsletterNoticia(), PDO::PARAM_INT);
        $statement ->bindValue(18, $empregadoTO ->getNewsletterVaga(), PDO::PARAM_INT);

        $statement ->execute();            
    }
    catch(PDOException $erro) {

        die($erro ->getTraceAsString());
    }

1 answer

1

Try to use the debugging(); it prints what you want and even more stuff. Helps when debugging SQL.

Browser other questions tagged

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