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

पीडीओ सरणी मान डालें

पहला, आपके मूल्यांकन का क्रम गलत है। POST मान भी मौजूद है या नहीं, यह जांचने से पहले आपको POST मान के साथ एक चर सेट नहीं करना चाहिए। आपको इसके अस्तित्व की जांच करनी चाहिए और फिर इसे एक चर में तभी सेट करना चाहिए जब यह मौजूद हो।

$id = $conn->lastInsertId(); // obtained from above (*)

if (!isset($_POST['services'])) {
    echo  'Nothing Selected';
} else {
    $services = $_POST['services']; // array(0 => 1, 1 => 2, ...)

दूसरा, मैं मान रहा हूं कि आपके पास पहले से (*) से कनेक्शन है - इसलिए फिर से कनेक्ट करने की कोई आवश्यकता नहीं है। चूंकि आपकी क्वेरी संक्षिप्त है, आप ? . का उपयोग कर सकते हैं उदाहरण #3 में दिखाए गए अनुसार अपने पैरामीटर को बाइंड करने के लिए ।

    try {
        $stmt = $conn->prepare('INSERT IGNORE INTO marketing_lookup SET domain_id = ?, service_id = ?');
        foreach ($services as $serviceId) {
            $stmt->execute(array($id, $serviceId));
        }
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
}

$conn = null; // pointless

आप लेन-देन देखना चाहेंगे जैसा कि आप कई प्रविष्टियां कर रहे हैं।



  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. एक साधारण बाएं जॉइन करते समय मैं अपने कुशल एसक्यूएल से मेल खाने के लिए एक कुशल डीक्यूएल कथन कैसे बना सकता हूं?

  3. रिकर्सिव में Sequelize शामिल है?

  4. MySQL पूर्ण पाठ प्रत्यय खोज (बूलियन मोड) -(*सेब)

  5. MySQL और NHibernate. त्रुटि कैसे ठीक करें:कॉलम 'आरक्षित शब्द' तालिका आरक्षित शब्द से संबंधित नहीं है?