Mysql
 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/hi/error-messages-server.html

एक अन्य उपयोगी प्रश्न:PHP में विदेशी कुंजी अपवादों को संभालना

दूसरे प्रश्न के लिए अपडेट करें:

. द्वारा विदेशी कुंजियों को अक्षम करें
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. औसत पंक्ति लंबाई संभव से अधिक

  2. क्या विजुअल स्टूडियो सर्वर एक्सप्लोरर कस्टम डेटाबेस प्रदाताओं का समर्थन करता है?

  3. एक क्वेरी में एक ही आईडी कॉलम के दो अलग-अलग मानों को जोड़ने के लिए SQL क्वेरी

  4. mysql जाँच करें कि क्या संख्याएँ अल्पविराम से अलग की गई सूची में हैं

  5. यह MySQL अद्यतन काम क्यों नहीं करता है?