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

PHP पीडीओ:बाइंडवैल्यू () और आरक्षित कीवर्ड से कैसे निपटें?

जब आप SQL स्ट्रिंग (prepare_update_string मुझे लगता है) का निर्माण करते हैं, साथ ही दोनों फ़ोरैच लूप्स में जहाँ आप डेटा को बाइंड करते हैं, एक इंक्रीमेंटिंग काउंट चलाते हैं और इसे बाइंड वैल्यू में जोड़ते हैं। तो ":status" बन जाता है ":status1"।

कुछ इस तरह:

$i = 1;
foreach ($data as $k => $v) {
    $this->_sth->bindValue(":{$k.$i}", $v);
    $i++;
}

यह किसी भी आरक्षित कीवर्ड की समस्या का समाधान करेगा।

यह उस समस्या को भी हल करता है (जो मुझे यकीन है कि आप भविष्य में सामना करेंगे) जहां आपको एक ही प्लेसहोल्डर से एक से अधिक बार जुड़ना होगा।

जैसे निम्न के बजाय, जो :status प्लेसहोल्डर

. पर दो बाइंड के कारण त्रुटि उत्पन्न करता है
SELECT * from table WHERE `status` = :status AND `otherfield` = :status

बढ़ती हुई गिनती के साथ, यह हो जाता है:

SELECT * from table WHERE `status` = :status1 AND `otherfield` = :status2

आनंद लें।



  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. MySQL डीबी दिनांक कॉलम दिनांक में सम्मिलित करने के लिए पायथन में स्ट्रिंग कनवर्ट करें

  3. MySQL स्क्रिप्ट कमांड लाइन के लिए पैरामीटर पास करें

  4. MySQL का उपयोग करने के लिए Django की स्थापना

  5. ईबीन मैनुअल डिक्रिप्शन