PaivaJr 0 Denunciar post Postado Maio 20, 2014 Olá, Fiz um pequeno programa em PHP/Firebird e na exclusão, quando se exclui um registro inexistente ele não dá erro. Ele considera como se o registro fosse excluido normalmente. Estou usando o EasyPHP 14.1 com Firebird 2.1 obs.: quando v. manda excluir um registro existente, ele exclui normalmente, porem ao excluir o mesmo registropela 2ª vez ele não dá erro. codigo : ?PHP $conexao = ibase_connect("c:/testephp/tutorial.gdb","SYSDBA","masterkey") or exit('erro'); if ($conexao){ $cod = $_POST["codigotxt"]; $sql = "delete from cadastro where codigo = ".$cod; //echo($sql); $trans = ibase_trans(IBASE_COMMITTED,$conexao); $resultado = @ibase_query($conexao, $sql) or die(ibase_errmsg()); if ($resultado) { echo("Exclusao efetuado"); } else { echo("Erro na exclusao"); } if (ibase_errmsg()) { echo "erro de exclusão"; } else { // exclusão ok $result = ibase_commit($conexao) or die(ibase_errmsg()); } echo($resultado); } else { echo("Erro ao conectar-se a base"); } ibase_close($conexao); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Maio 20, 2014 troque o if ($resultado) por if ($resultado=>1) e teste ai Compartilhar este post Link para o post Compartilhar em outros sites
PaivaJr 0 Denunciar post Postado Maio 21, 2014 Marcos, dá o êrro abaixo : Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\www\apagar.php on line 26 Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Maio 22, 2014 Desculpa a demora. tente assim entao if ($resultado>=1){ Compartilhar este post Link para o post Compartilhar em outros sites
PaivaJr 0 Denunciar post Postado Maio 24, 2014 Marcos, desculpe a demora tambem( rsrsrs), O que acontece é o seguinte: se existir o registro a ser excluido, ele exclui corretamente e da mensagem "registro excluido". No caso do registro a ser excluido não existir : ele apesar de não encontrar nada para excluir da a mensagem : registro excluido. Com "echo" descobri que em ambos os casos o retorno da variável $resultado é sempre igual a 1. Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Maio 25, 2014 só voc~e verificar se foi enviiado alguma coisa $excluir=$_POST['excluir']; if(empty($excluir){ echo"sem nada"; } Compartilhar este post Link para o post Compartilhar em outros sites
PaivaJr 0 Denunciar post Postado Maio 25, 2014 Marcos v. não entendeu. Não é o caso do usuário não preencher o campo de código para exclusão. É o caso dele preencher corretamente o código sendo que o código preenchido a ser excluído, na realidade não existe no banco de dados e, nesse caso, o php/firebird deveria dar um retorno na variável $resultado de alguma coisa ex. (0 = erro de instrução; 1 = exclusão bem sucedida; -1 = registro não encontrado...), entendeu ? Parece que isso, pelo menos a meu ver, é uma falha do php ou do firebird, não concorda ? Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 25, 2014 use ibase_affected_rows ou pdo Cara na boa user PDO Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Maio 26, 2014 Desculpe entao caro amigo mais pela sua logica você tem que verificar se o cod existe ou seja fazendo um select. Compartilhar este post Link para o post Compartilhar em outros sites
PaivaJr 0 Denunciar post Postado Maio 27, 2014 Williams, o que é e como funciona esse PDO ? Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 27, 2014 PDO É a sigla para PHP Data Objects. Trata-se de uma extensão do PHP para prover acesso a diferentes modelos de bancos de dados através de uma interface única de classes e métodos. Exemplo prático que postei em outro tópico http://forum.imasters.com.br/topic/521572-login-session-atualizar-sessao-ao-mudar-dados/#entry2075264 Compartilhar este post Link para o post Compartilhar em outros sites
PaivaJr 0 Denunciar post Postado Maio 28, 2014 Agradeço a todos pela "AJUDA" e faço uma última pergunta : Como fecho este tópico ? Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Maio 28, 2014 Escolhe uma pergunta e marque como resolvido, e de um ponto de reputação Compartilhar este post Link para o post Compartilhar em outros sites
PaivaJr 0 Denunciar post Postado Maio 31, 2014 Escolhe uma pergunta e marque como resolvido, e de um ponto de reputação Obrigado a todos.. Compartilhar este post Link para o post Compartilhar em outros sites