अपवादों का प्रयोग करें:
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;