sql >> データベース >  >> RDS >> Mysql

PHPを使用して削除制限の外部キー制約を確認するにはどうすればよいですか?

    例外を使用する:

    try {
        $db->query(...);
    } catch (Exception $e) {
        echo "an error occured during query";
    }
    

    独自の例外を作成して、FKエラーに特化することもできます:

    class ForeignKeyException extends Exception {
        public function __construct($msg = 0, $code = 0) {
            parent::__construct($msg, $code);
        }
    }
    

    FKエラーが発生した場合は、throw new ForeignKeyException('FK failed');を実行します。

    try {
        $db->query(...);
    } catch (ForeignKeyException $e) {
        echo "FK error";
    } catch (Exception $e) {
        echo "general error";
    }
    

    更新:

    mysqliにはすでに例外があります:

    } catch (mysqli_sql_exception $e) {
        if ($e->getCode() == 'CODE FOR FK') {
            //...
        }
    }
    

    PHP mysqliの例外: http://php.net/manual/en /class.mysqli-sql-exception.php

    MYSQLIエラーコードを参照してください: http://dev。 mysql.com/doc/refman/5.6/en/error-messages-server.html

    もう1つの役立つ質問:PHPでの外部キー例外の処理>

    2番目の質問の更新:

    で外部キーを無効にします
    SET foreign_key_checks = 0;
    <your delete query here>
    SET foreign_key_checks = 1;
    


    1. 000webhostを使用してデータベースに接続しているときにSQLSTATE[HY000][1045]例外が発生しました

    2. 収集方法:OracleデータベースのDELETEプロシージャ

    3. floatデータ型とdecimalデータ型の違い

    4. 行のMySQLフィールドの数を数える(または空にする)