Fórum Erro em insert ou update #464746
23/12/2013
0
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
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);
}
Jonas Tomazelli
Curtir tópico
+ 0
Responder
Posts
01/04/2014
Jonas Tomazelli
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.
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.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)