मैं यह कहने की हिम्मत करूंगा कि यह एक बग है। मुझे दो प्रासंगिक टिकट मिले:
- बग #63812 :पीडीओ ट्रिगर चेतावनी(यों) त्रुटि प्रबंधन रणनीति के बावजूद, 2012 को PHP/5.3.19 के लिए दायर की गई
- बग #74401 :पीडीओ ट्रिगर चेतावनी पहले से ही फेंक अपवाद सेट कर चुकी है, 2017 को PHP/7.0.17 के लिए दायर की गई है
किसी भी मामले में, वे अभी भी खुले हैं और यह पूरी तरह से स्पष्ट नहीं है कि क्या वे वैध मुद्दे हैं (हालांकि मुझे संदेह है कि वे हैं)। यह एक डिज़ाइन निर्णय प्रतीत नहीं होता है क्योंकि अन्य MySQL त्रुटियाँ चेतावनी और अपवाद दोनों को ट्रिगर नहीं करती हैं:
$connection = new PDO('mysql:host=127.0.0.1;dbname=test', 'test', 'test',
[PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING]);
$connection->query('SELECT * FROM foo');
$connection = new PDO('mysql:host=127.0.0.1;dbname=test', 'test', 'test',
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
$connection->query('SELECT * FROM foo');