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.