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

पीडीओ - कोई परिणाम नहीं देने वाली क्वेरी

यहां समस्या यह है कि आप पैरामीटर को bindParam . के साथ बाध्य कर रहे हैं , जो संदर्भ द्वारा बाध्यकारी का उपयोग करता है। आपके मामले में आपको bindValue . का उपयोग करना चाहिए इसके बजाय:

foreach( $binders as $key => $value ) {
    $sql->bindValue( $key, $value );
}

या आप अपनी सरणी को सीधे execute() . पर पास कर सकते हैं विधि:

$sql->execute( $binders );

जैसा कि मैनुअल में वर्णित है:

the variable is bound as a reference and will only be evaluated at the time that PDOStatement::execute() is called.

इसलिए जब आपका फ़ोरैच लूप $value ends समाप्त होता है अंतिम सरणी आइटम का मान है Apple . तो जब execute रन, दोनों :ctid और :p1 मान Apple . के बराबर होते जा रहे हैं . निश्चित रूप से, यह वह नहीं है जो आप चाहते हैं)



  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. PHP और MySQL डेटाबेस में ब्लॉग कैसे बनाये - बैकएंड

  4. Sql:पंक्तियों को स्तंभों में स्थानांतरित करना

  5. JDBC हमेशा MySQL तालिका की अंतिम पंक्ति का परीक्षण करता है?