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

MYSQL सम्मिलित करें जहाँ PDO के साथ मौजूद नहीं है

आपकी क्वेरी पूरी तरह से गड़बड़ दिखती है, खासकर आपके EXISTS . में उप-क्वेरी। आप MyTbl.ColA . का चयन कर रहे हैं tickets . से ???

मेरी सलाह होगी कि बस MyTbl (ColA, ColB) पर एक अद्वितीय बाधा जोड़ें। ।

ALTER TABLE MyTbl ADD UNIQUE (ColA, ColB);

फिर, आपका INSERT अद्वितीय बाधा उल्लंघन के साथ विफल हो जाएगा जिसे PDOException . में पकड़ा जा सकता है ।

$stmt = $pdo->prepare('INSERT INTO MyTbl (ColA, ColB) VALUES (?, ?)');
foreach ($loopme as $foo) {
    try {
        $stmt->execute([$foo->fooA, $foo->fooB]);
    } catch (PDOException $e) {
        $errorCode = $stmt->errorInfo()[1];
        if ($errorCode == 1586) {
            // I think 1586 is the unique constraint violation error.
            // Trial and error will confirm :)
        } else {
            throw $e;
        }
    }
}

आप जो त्रुटि संदेश देख रहे हैं उसे संबोधित करने के लिए... ऐसा इसलिए है क्योंकि आप INSERT के बीच अंतर नहीं कर रहे हैं तालिका और उप-क्वेरी तालिका।




  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. mySQL तालिका में उच्चारण वर्ण

  3. MySql में IN क्लॉज का उपयोग करने का अलग तरीका

  4. क्या MySQL अद्वितीय बाधाओं पर शून्य मानों को अनदेखा करता है?

  5. मैसकल बल्क अपडेट