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

pdo निष्पादन दे की त्रुटि

पीडीओ::मैनुअल तैयार करें से;

वह (दुख की बात है) का अर्थ है कि आपको एक ही मान को एक क्वेरी में दो बार उपयोग करने के लिए द्वितीयक नामों के साथ अपनी बाइंडिंग को डुप्लिकेट करना होगा। सुंदर नहीं, कुछ इस तरह;

$sth = $db->prepare(
  'INSERT INTO track (`rsname`, `overallranknow`, `overalllevelnow`, `overallxpnow` )' .
    'VALUES (:name, :Overalln, :Overall1, :Overall2) '. 
    'ON DUPLICATE KEY UPDATE ' .
      "rsname = :name_2"  .
      "overallranknow = :Overalln_2" .
      "overalllevelnow = :Overall1_2" .
      "overallxpnow = :Overall2_2" 
);
$sth->bindValue(':name', $name, PDO::PARAM_STR);
$sth->bindValue(':name_2', $name, PDO::PARAM_STR);
$sth->bindValue(':Overalln', $Overalln, PDO::PARAM_INT);
$sth->bindValue(':Overalln_2', $Overalln, PDO::PARAM_INT);
$sth->bindValue(':Overall1', $Overall[1], PDO::PARAM_INT);
$sth->bindValue(':Overall1_2', $Overall[1], PDO::PARAM_INT);
$sth->bindValue(':Overall2', $Overall[2], PDO::PARAM_INT);
$sth->bindValue(':Overall2_2', $Overall[2], PDO::PARAM_INT);
$sth->execute();

संपादित करें:चूंकि MySQL VALUES ON DUPLICATE KEY में कीवर्ड मापदंडों को दोहराने की आवश्यकता नहीं है, इस सटीक मामले के लिए @YourCommonSense के उत्तर का उपयोग करना बेहतर होगा।



  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 - कॉलम में NULL मान नहीं डाल सकता, लेकिन मेरे पास एक डिफ़ॉल्ट मान निर्दिष्ट है?

  2. एक चयन मिला जो सिद्धांत में 10 प्रश्न करता है (सिम्फनी)

  3. डुप्लिकेट पंक्तियों को कैसे हटाएं और तालिका को कैसे अपडेट करें

  4. कैसे जांचें कि कोई स्ट्रिंग यादृच्छिक दिखती है, या मानव उत्पन्न और उच्चारण योग्य है?

  5. MySql में चर के माध्यम से AUTO_INCREMENT मान सेट करें