Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jonas Tomazelli

Erro Insert Update Firebird + PHP

Recommended Posts

Bom dia pessoal, estou usando PHP com Firebird 2.5, tem uma função que em alguns casos da um update e em outros da insert. Mas na pratica, quando é para acontecer o update o servidor retorna alguns Warnings e não faz nada, abaixo segue erros e meu código:


Warning: ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = -104 as approximate floating-point values in SQL dialect 1, but as 64-bit in D:\web\localuser\a2x\www\canala2x\admFuncoes.php on line 29

Warning: ibase_fetch_object(): supplied argument is not a valid Firebird/InterBase result resource in D:\web\localuser\a2x\www\canala2x\admFuncoes.php on line 34

Warning: ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = -104 as approximate floating-point values in SQL dialect 1, but as 64-bit in D:\web\localuser\a2x\www\canala2x\admFuncoes.php on line 57

Warning: ibase_fetch_object(): supplied argument is not a valid Firebird/InterBase result resource in D:\web\localuser\a2x\www\canala2x\admFuncoes.php on line 59

Warning: ibase_query() [function.ibase-query]: Dynamic SQL Error SQL error code = -104 Token unknown - line 1, char 1 MAX in D:\web\localuser\a2x\www\canala2x\admFuncoes.php on line 65

Warning: ibase_fetch_object(): supplied argument is not a valid Firebird/InterBase result resource in D:\web\localuser\a2x\www\canala2x\admFuncoes.php on line 66

Warning: ibase_prepare() [function.ibase-prepare]: Dynamic SQL Error SQL error code = -104 Token unknown - line 1, char 32 WHERE in D:\web\localuser\a2x\www\canala2x\admFuncoes.php on line 73

Warning: ibase_execute() expects parameter 1 to be resource, string given in D:\web\localuser\a2x\www\canala2x\admFuncoes.php on line 75

<?php
 
/*
 * esta pagina deve conter todas as funcoes php que se referem a area
 * administrativa do aplicativo
 */
 
//PEGO NOME DA FUNCAO QUE FOI PASSADA PARA O CAMPO HIDDEN
$funcao = $_REQUEST['acao'];
 
//verifico se a funcao existe, se sim executa
IF(function_exists($funcao)){
    call_user_func($funcao);
    }
 
 
//FUNCOES
function atualizaSenhaCliente(){
    //conecta o banco
    require_once 'conecta.php';
    $codcliente = $_REQUEST['codcliente'];
    $senha = $_REQUEST['senha'];
     
    //SQL
    $sql="UPDATE TBUSUARIOWEB SET SENHA=$senha WHERE CODCLIENTE=$codcliente";
    $sql1 = "SELECT COUNT(A.CODCLIENTE) AS TOTAL FROM TBUSUARIOWEB A WHERE A.CODCLIENTE=$codcliente ";
     
    //executa sql
    $resultado = ibase_query($conexao,$sql1);
     
    //zera contador
    $cont = 0;
     
    while($row = ibase_fetch_object($resultado)){
        $cont = $row->TOTAL;
        }
     
    //se $cont>0 é porque a senha ja está cadastrada, vai ser feito um update   
    IF($cont>0){
         
        //preparando
        ibase_prepare($sql);
        //executando update       
        ibase_execute($sql);
        //comitando
        ibase_commit($conexao);
        }
     
    //se $cont=0 é porque não temos usuario cadastrado, vamos ter que cadastra- lo
    ELSE{
         
        //SQL
        $sql2 = "MAX(A.CODCLIENTE) AS MAIOR FROM TBUSUARIOWEB";
        $sql4 = "SELECT A.CNPJCPF FROM TBCLIENTE WHERE CODCLIENTE=$codcliente";
         
        //PEGANDO CNPJ
        $resultado = ibase_query($conexao,$sql4);
        $cnpj = ' ';
        while($row = ibase_fetch_object($resultado)){
            $cnpj = $row->CNPJCPF;
            }
         
        //gerando codusuario e inserindo informacoes na tabela           
        $maior = 0;
        $resultado2 = ibase_query($conexao,$sql2);
        while($row = ibase_fetch_object($resultado2)){
            $maior = $row->MAIOR;
            }//FIM WHILE       
         
        $codusuario = $maior++;
        $sql3 = "INSERT INTO TBUSUARIOWEB VALUES($codusuario,$cnpj,$senha,$codcliente)";
         
        ibase_prepare($sql);
        //executa query
        ibase_execute($sql3);
        //comita
        ibase_commit($conexao);
         
        }//fim ELSE
         
        //fecha conexão
        ibase_close($conexao);
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, bom dia, como ninguém respondeu vou explicar a causa do meu problema para que se ocorrer com outro ele saiba como proceder.

No meu caso foi coisa bem de amador mesmo, as variáveis que estavam no script de SQL não estavam recebendo valor algum. Isso gera erro de SQL, já que na clausula WHERE não há valor a se comparar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.