Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पीडीओ चेतावनियों को दबाना

केवल एक चीज जो मैं यहां देख सकता हूं, वह यह है कि आप पीडीओ को बाद अपवादों को फेंकने के लिए कहते हैं आपने कनेक्शन खोलने का प्रयास किया है। यह सबसे अधिक संभावना है कि बहुत देर हो चुकी है।

इसके बजाय आप क्या कर सकते हैं, उस विकल्प को सीधे चौथे पैरामीटर का उपयोग करके कंस्ट्रक्टर को भेजें:

try {
  $opts = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
  $db = new PDO($dbms . ':host=' . $dbhost . ';port=' . $dbport . ';dbname=' . $dbname,
                $dbuser, $dbpasswd, $opts);
} catch(PDOException $e) {
...

इससे शायद आपकी समस्या का समाधान हो जाएगा।

संपादित करें: यदि होस्ट नाम उपयोगकर्ता द्वारा प्रदान किया गया है, तो आप इसे पीडीओ कंस्ट्रक्टर को भेजने से पहले सत्यापित कर सकते हैं।

उदाहरण के लिए उपयोग करना:

if (filter_var(gethostbyname($user_provided_host_name), FILTER_VALIDATE_IP)) {
  // valid hostname / ip address
}

यह डोमेन नाम के लिए काम करेगा, localhost और आईपी पते।




  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. कोडनिर्देशक में foreach () के लिए दिया गया अमान्य तर्क

  3. क्या MySQL डॉट के साथ डेटाबेस बनाने की अनुमति देता है?

  4. संपूर्ण mysql डेटाबेस ढूंढें और बदलें

  5. bind_param () केवल उपयोगकर्ता द्वारा इनपुट किए गए मानों या सभी पर आवश्यक है?