Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

bagaimana saya bisa memeriksa batasan kunci asing pada batasan penghapusan menggunakan PHP

Gunakan Pengecualian:

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

Anda juga dapat membuat Pengecualian Anda sendiri untuk mengkhususkan diri untuk kesalahan FK:

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

Ketika kesalahan FK terjadi, Anda throw new ForeignKeyException('FK failed');

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

Pembaruan:

mysqli sudah memiliki pengecualian:

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

Pengecualian PHP mysqli:http://php.net/manual/en /class.mysqli-sql-exception.php

Lihat kode kesalahan MYSQLI:http://dev. mysql.com/doc/refman/5.6/en/error-messages-server.html

Pertanyaan berguna lainnya:Menangani pengecualian kunci asing di PHP

Pembaruan untuk pertanyaan kedua:

Nonaktifkan kunci asing dengan

SET foreign_key_checks = 0;
<your delete query here>
SET foreign_key_checks = 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan Django 3.x:'mysql.connector.django' bukan backend basis data yang tersedia

  2. Memasukkan data dari CSV ke MySQL DB sangat lambat

  3. MySQL COUNT dengan LIMIT

  4. Bagaimana cara agar PHP dan MySQL bekerja di IIS 7.0?

  5. Cara Instal MySQL 8 Dengan Workbench Pada Windows 10