Ir para conteúdo
Fórum Script Brasil
  • 0

INSERT (SQLServer) não roda no meu código PHP


Ti Noe

Pergunta

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();
}

?>

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

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 por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...