Ti Noe Postado Setembro 8, 2023 Denunciar Share Postado Setembro 8, 2023 Gostaria de uma ajuda, pois não sei o que está acontecendo, tentei todo tipo de alteração mais não funcionou. Meu retorno de valor via POST está OK. Meu código de UPDATE dentro do meu PHP funciona, mas meu INSERT não funciona. Rodei meu INSERT do mesmo jeito que está no PHP no meu SQLSERVER e ele roda normalmente. Gostaria de uma ajuda para tentar identificar minha falha no meu código que está impedindo de rodar meu INSERT. Segue meu código: <?php define('DB_HOST', "X"); define('DB_USER', "X"); define('DB_PASSWORD', "X"); define('DB_NAME', "X"); define('DB_DRIVER', "X"); require_once "../server/class/Conexao.php"; try { $Conexao = Conexao::getConnection(); // Obtenha o valor de AGM.AGM_PAC enviado via POST if (isset($_POST['agm_pac'])) { $agmPac = $_POST['agm_pac']; // Insere o paciente na Fila da Recepcao de Cirurgia $sql = "INSERT INTO FLE ( FLE_DTHR_CHEGADA , FLE_PSV_COD , FLE_STR_COD , FLE_PAC_REG , FLE_DTHR_ATENDIMENTO , FLE_ORDEM , FLE_STATUS , FLE_USR_LOGIN , FLE_OBS , FLE_DTHR_MARCADA , FLE_MARC_EXTRA , FLE_PSV_RESP , FLE_DTHR_CHEGADA_INICIAL , FLE_COR , FLE_BIP , FLE_DTHR_REG , FLE_PROCED , FLE_VERSAO , FLE_OSM_SERIE , FLE_OSM_NUM , FLE_SMM_NUM , FLE_PSV_T_PREFIXO ) VALUES ( GETDATE() , 999 , 'REC' , :agmPac , NULL , (SELECT MAX ( FLE_ORDEM ) + 1 FROM FLE WHERE ( FLE_PSV_COD =999 ) AND ( CAST( FLE_DTHR_CHEGADA AS DATE ) >= CAST ( GETDATE() AS DATE) ) ) , 'A' , 'TOTEM13' , 'CHECKIN' , ( SELECT AGM.AGM_HINI FROM AGM WHERE ( AGM.AGM_HINI >= DATEADD( HH, -1, GETDATE() ) AND AGM.AGM_HINI <= DATEADD( HH, 4, GETDATE() ) ) AND ( AGM.AGM_STAT NOT IN ('B','C') ) AND ( AGM.AGM_ATEND = 'CRG' ) AND ( AGM.AGM_PAC = :agmPac ) ) , NULL , 999 , GETDATE() , NULL , NULL , GETDATE() , 'REG' , '00' , NULL , NULL , NULL , NULL )"; /* // Execute a atualização no banco de dados $sql = "UPDATE AGM SET AGM.AGM_OBS3 = 'CHECKIN' WHERE ( AGM.AGM_HINI >= DATEADD( HH, -1, GETDATE() ) AND AGM.AGM_HINI <= DATEADD( HH, 4, GETDATE() ) ) AND ( AGM.AGM_STAT NOT IN ('B','C') ) AND ( AGM.AGM_ATEND = 'CRG' ) AND ( AGM.AGM_PAC = :agmPac )";*/ $stmt = $Conexao->prepare($sql); $stmt->bindParam(':agmPac', $agmPac, PDO::PARAM_INT); $stmt->execute(); if (!$stmt) { echo "\nPDO::errorInfo():\n"; print_r($Conexao->errorInfo()); } echo "Atualização bem-sucedida"; } } catch (Exception $e) { echo $e->getMessage(); } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Setembro 8, 2023 Denunciar Share Postado Setembro 8, 2023 (editado) Eu tentei fazer um código mais simples: <?php class Conexao { private static $pdo; public static function getConnection(){ if(!self::$pdo){ self::$pdo=new pdo("mysql:host=localhost;dbname=laravel","root","");} return self::$pdo;}} try { $Conexao = Conexao::getConnection();var_dump($Conexao); $sql = "INSERT INTO FLE ( FLE_DTHR_CHEGADA ) VALUES ( GETDATE())"; $stmt = $Conexao->prepare($sql); $stmt->execute(); echo "Atualização bem-sucedida";} catch (Exception $e) {echo $e->getMessage();} ?> mas na hora de executar, eu tive essa mensagem: SQLSTATE[42000]: Syntax error or access violation: 1305 FUNCTION laravel.GETDATE does not exist Editado Setembro 8, 2023 por Frank K Hosaka Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Ti Noe Postado Setembro 11, 2023 Autor Denunciar Share Postado Setembro 11, 2023 Achei onde está o erro mais ainda não entendi se pode ser o identificado de linguagem do PHP, o problema está em um Select feito para pegar a data e inserir a data agendada do paciente: ( SELECT AGM.AGM_HINI FROM AGM WHERE ( AGM.AGM_HINI >= DATEADD( HH, -1, GETDATE() ) AND AGM.AGM_HINI <= DATEADD( HH, 4, GETDATE() ) ) AND ( AGM.AGM_STAT NOT IN ('B','C') ) AND ( AGM.AGM_ATEND = 'CRG' ) AND ( AGM.AGM_PAC = :agmPac ) ) Sendo assim se eu colocar no lugar do select: "2023-09-11 11:00", a query roda no PHP e grava no BANCO SQLSERVER. Agora se eu rodar o SELECT que está OK, ele não consegue gravar a data gerada. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Ti Noe
Gostaria de uma ajuda, pois não sei o que está acontecendo, tentei todo tipo de alteração mais não funcionou. Meu retorno de valor via POST está OK.
Meu código de UPDATE dentro do meu PHP funciona, mas meu INSERT não funciona.
Rodei meu INSERT do mesmo jeito que está no PHP no meu SQLSERVER e ele roda normalmente.
Gostaria de uma ajuda para tentar identificar minha falha no meu código que está impedindo de rodar meu INSERT.
Segue meu código:
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.