Olá a todos do forum,  Este é meu primeiro post, pois estou com um certo problema um pouco chato, porém pesquisei nos forum e não achei algo semelhante.   O problema é o seguinte: tenho um pequeno sistema em php + mysql rodando localmente. Antes, eu usava a engine MyISAM, fazia as operações de insert, update, delete tudo ok, sem nenhum problema e para verificar o sucesso ou falha em alguma operação de inclusão eu usava o seguinte código de teste   $resultado = mysql_query ("insert into estoque (nome,qtde,almox) values ('$id_prod',345,'$id_almox')");
$linhas = mysql_affected_rows();
if (!($linhas){
   echo "Falha";
}else    {
   echo "Sucesso";
}  Como surgiu a necessidade de se utilizar chaves estrangeiras e aproveitar as rstrinções baseada nelas, mudei a engine para InnoDB. O único problema que me surgiu foi que, ao induzir o sistema a inserir um tupla onde um ou mais valores dos campos correspondia a uma chave inexistente em outra tabela, o mysql disparava um erro, o que era de se esperar, entretanto no meu código php o else era executado, como se mesmo havendo o erro devido as restrinções das chaves estrangeiras, o método mysql_affected_rows() retornasse um valor positivo. Qualquer outra indução a erro que não levasse a estrinção às chaves, o mysql_affected_rows() retornava zero, levando a execução do bloco if corretamente.  Gostaria de saber se eu estou verificando de forma correta ou o meu código é falho e existe uma forma melhor de verificar essas restrições em php?  Sem mais, agradeço antecipadamente a todos os membros deste excelente forum pela atenção prestada.