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

पीएचपी पीडीओ डुप्लीकेट कुंजी डालने पर अपवाद नहीं फेंकता

अपडेट 2018:डीईवी इसे एक बग नहीं, बल्कि इच्छित व्यवहार मानते हैं। इसलिए, PHP-उपयोगकर्ताओं को इसके साथ रहना होगा, भविष्य के किसी भी प्रश्न के लिए रिपोर्ट बंद है...

इसे अक्सर PDO . के साथ बग के रूप में रिपोर्ट किया गया है :https://bugs.php.net/bug.php?id=61613

यह केवल तभी अपवाद देगा जब पहला कथन अमान्य है। यदि पहला कथन सुचारू रूप से चलता है, तो आपको कोई त्रुटि नहीं मिलेगी - और आपका पहला कथन मान्य है:

INSERT INTO `a` (`b`, `c`) VALUES
  (1, 1),
  (2, 2),
  (3, 2);

समाधान के रूप में - या उपयोगकर्ता हटाए गए . के अनुसार इसे करने का सही तरीका - आपको पंक्तियों को एक-एक करके संसाधित करने की आवश्यकता है (बग रिपोर्ट टिप्पणियों से लिया गया):

$pdo->beginTransaction();
try {
    $statement = $pdo->prepare($sql);
    $statement->execute();
    while ($statement->nextRowset()) {/* https://bugs.php.net/bug.php?id=61613 */};
    $pdo->commit();
} catch (\PDOException $e) {
    $pdo->rollBack();
    throw $e;
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैक ओएस एक्स पर mysql मणि स्थापित नहीं कर सकता

  2. क्वेरी समाप्त होने से पहले क्वेरी परिणाम देखना शुरू करें

  3. MySQL:दृश्य बनाम संग्रहीत कार्यविधियाँ

  4. प्रक्रिया के लिए MySQL foreach विकल्प

  5. क्वेरी परिणाम को .csv प्रारूप के रूप में सहेजने के लिए 1 क्वेरी के साथ 2 sql क्वेरी चलाएँ