Stack Overflow em Português Asked by Fernando Silva on December 5, 2021
Como uso stored procedure com Doctrine ?
Devo usar o createNativeQuery ?
Olá! Obrigado por responder Marcelo!
Encontrei os meios de fazer. Existem dois métodos:
1) Usando createNativeQuery
$rsm = new ResultSetMapping;
$em = $this->getEntityManager();
$sp = "BEGIN pk_web.sp_WEB_CONTATO(:pNOME,:pEMAIL,:pFONE,:pMENSAGEM); END;";
$query = $em->createNativeQuery($sp,$rsm)
->setParameters(array(
':pNOME' => $data['nome'],
':pEMAIL' => $data['email'],
':pFONE' => $data['fone'],
':pMENSAGEM' => $data['mensagem'],
));
$result = $query->getResult();
2) Usando PDO
$connection = $this->getEntityManager()
->getConnection()
->getWrappedConnection();
$stmt = $connection->prepare("BEGIN pk_web.sp_WEB_CONTATO(:pNOME,:pEMAIL,:pFONE,:pMENSAGEM,:pMSG); END;");
$stmt->bindParam(":pNOME", $data['nome'], PDO::PARAM_STR, 255);
$stmt->bindParam(":pEMAIL", $data['email'], PDO::PARAM_STR, 255);
$stmt->bindParam(":pFONE", $data['fone'], PDO::PARAM_STR, 255);
$stmt->bindParam(":pMENSAGEM", $data['mensagem'], PDO::PARAM_STR, 8000);
$stmt->bindParam(":pMSG",$msg,PDO::PARAM_STR, 1000);
$stmt->execute();
if($msg) {
return [
"success" => true,
"id" => $msg,
"nome" => $data['nome'],
"email" => $data['email']
];
}
No exemplo acima, minha stored procedure esta em uma package do Oracle. A variavel :pmsg recebe o retorno de minha stored procedure.
Answered by Fernando Silva on December 5, 2021
Que eu saiba só usando query nativa, assim:
$results = $this->getConnection()->query("SELECT NOME_DA_PROCEDURE()")
->fetchAll();
Answered by Nelson Teixeira on December 5, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP