เกี่ยวกับคำถามดังนั้นผมถามนี่เกี่ยวกับรหัสบางอย่างผมก็ไม่แน่ใจเกี่ยวกับใครบางคนตอบว่า "BTW รหัสที่น่ากลัวนั่น. จะใช้ข้อผิดพลาดปราบปรามสัญลักษณ์ (@) เป็นจำนวนมาก"
มีเหตุผลหรือไม่ว่าทำไมนี่ถึงเป็นการปฏิบัติที่ไม่ดี? ด้วยสิ่งที่ชอบ:
$db=@new mysqli($db_info) or die('Database error');
มันช่วยให้ฉันแสดงข้อความข้อผิดพลาดที่กำหนดเอง โดยไม่มีการระงับข้อผิดพลาดจากนั้นจะยังคงแสดงข้อความ PHP ทั่วไปของ:
คำเตือน : mysqli :: mysqli (): php_network_getaddresses: getaddrinfo ล้มเหลว: ไม่รู้จักโฮสต์ดังกล่าว ในบาง \ file \ pathบนบรรทัด 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>' : ''))