एसओ के सवाल पर मैंने यहां कुछ कोड के बारे में पूछा था जिनके बारे में मैं अनिश्चित था, किसी ने उत्तर दिया "बीटीडब्ल्यू, भयानक कोड: यह प्रतीक (@) को दबाने वाली त्रुटि का उपयोग करता है।"
क्या कोई कारण है कि यह बुरा व्यवहार क्यों है? चीजों के साथ:
$db=@new mysqli($db_info) or die('Database error');
, यह मुझे सिर्फ एक कस्टम त्रुटि संदेश प्रदर्शित करने की अनुमति देता है। दबाने के बिना, तब यह अभी भी विशिष्ट PHP संदेश प्रदर्शित करेगा:
चेतावनी : mysqli :: mysqli (): php_network_getaddresses: getaddrinfo विफल: ऐसा कोई होस्ट ज्ञात नहीं है। में कुछ \ फ़ाइल \ पथ पर लाइन 6
साथ ही 'डेटाबेस त्रुटि'।
क्या त्रुटि हमेशा खराब होती है, और यदि हां, तो विशेष रूप से उपरोक्त के बारे में क्या बुरा है?
अद्यतन: वास्तविक कोड जो मैं उपयोग कर रहा हूं वह है:
or error('Datatabase error', 'An error occurred with the database' . (($debug_mode) ? '<br />MySQL reported: <b>' . $db->error . '</b><br />Error occurred on line <b>' . __LINE__ . '</b> of <b>' . __FILE__ . '</b>' : ''))
जो पिछले सभी आउटपुट को हटा देता है और एक त्रुटि संदेश प्रदर्शित करता है। इसलिए यह तथ्य कि त्रुटि संदेश में यह विवरण शामिल नहीं है कि विशेष रूप से क्या हुआ है (जो कि लोगों को एक कारण के रूप में सुझाव दे रहा है कि त्रुटि क्यों खराब है) अप्रासंगिक है।
or error('Datatabase error', 'An error occurred with the database' . (($debug_mode) ? '<br />MySQL reported: <b>' . $db->error . '</b>' : ''))