Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

como posso verificar a restrição de chave estrangeira na restrição de exclusão usando PHP


Exceções de uso:
try {
    $db->query(...);
} catch (Exception $e) {
    echo "an error occured during query";
}

Você também pode fazer suas próprias exceções para se especializar em erros FK:
class ForeignKeyException extends Exception {
    public function __construct($msg = 0, $code = 0) {
        parent::__construct($msg, $code);
    }
}

Quando ocorre um erro de FK, você throw new ForeignKeyException('FK failed');
try {
    $db->query(...);
} catch (ForeignKeyException $e) {
    echo "FK error";
} catch (Exception $e) {
    echo "general error";
}

Atualização:

mysqli já tem exceções:
} catch (mysqli_sql_exception $e) {
    if ($e->getCode() == 'CODE FOR FK') {
        //...
    }
}

Exceção PHP mysqli:http://php.net/manual/en /class.mysqli-sql-exception.php

Veja os códigos de erro MYSQLI:http://dev. mysql.com/doc/refman/5.6/en/error-messages-server.html

Outra pergunta útil:Manipulação de exceções de chave estrangeira em PHP

Atualização para a 2ª pergunta:

Desabilitar chaves estrangeiras por
SET foreign_key_checks = 0;
<your delete query here>
SET foreign_key_checks = 1;