Ir para conteúdo

POWERED BY:

Arquivado

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

PaivaJr

Exclusão de registro inexistente não dá retorno de erro

Recommended Posts

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, 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, 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

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

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

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

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

Escolhe uma pergunta e marque como resolvido, e de um ponto de reputação rep_up.png

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.