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

MySQL के लिए PDO का lastInsertId एक दौड़ की स्थिति है?

MySQL एक सत्र की अंतिम प्रविष्टि आईडी को दूसरे सत्र में वापस नहीं करता है।

http://dev.mysql .com/doc/refman/5.6/hi/information-functions.html#function_last-insert-id कहते हैं:

अपनी टिप्पणी दें:

MySQL का यह व्यवहार शुरू से ही रहा है। अंतिम सम्मिलित आईडी लौटाना बहुत बेकार होगा यदि यह दौड़ की स्थिति के लिए अतिसंवेदनशील था, अर्थात यदि अन्य सत्रों में सम्मिलित करना आपके सत्र को प्रदूषित कर सकता है।

एक संभावना यह है कि आप लगातार कनेक्शन का उपयोग कर रहे हैं, क्योंकि PHP के पुराने संस्करणों में एक बग था कि एक नए PHP अनुरोध के लिए एक कनेक्शन दिया जा सकता है और पिछले PHP अनुरोध से सत्र-दायरे वाले राज्य तक पहुंच प्रदान कर सकता है। दूसरे शब्दों में, ताले और लेन-देन और अस्थायी तालिकाओं और उपयोगकर्ता चर और अंतिम सम्मिलित आईडी जैसी चीजें बाद के PHP अनुरोध तक जीवित रह सकती हैं। इन समस्याओं को PHP 5.3 में mysqlnd ड्राइवर के साथ हल किया जाना चाहिए; एक सतत कनेक्शन प्रारंभिक स्थिति में "रीसेट" होना चाहिए।

एक और संभावित व्याख्या यह है कि यह वास्तव में सही ढंग से काम कर रहा है, और आप अपनी टिप्पणियों में गलत हैं। इसलिए मेरा सुझाव है कि इसे सावधानीपूर्वक और विधिपूर्वक परीक्षण करें।

अपडेट करें: आपके उत्तर के अनुसार , इस समस्या का MySQL या PDO या lastInsertId से कोई लेना-देना नहीं था। ऐसा लगता है कि आप अपने PHP कोड के आउटपुट में बिल्कुल भी विसंगतियां नहीं देख रहे थे, आपको क्रोम देव टूल्स में नेटवर्क प्रदर्शन आंकड़ों में अप्रत्याशित संख्याएं दिखाई दे रही थीं।



  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. (सलाह की ज़रूरत है) मेरे Android ऐप से MySQL सर्वर डेटाबेस से बात करें

  3. टेक्स्ट कॉलम को अद्वितीय कुंजी के रूप में बनाएं

  4. लिनक्स पर PHP के लिए वास्तविक max_execution_time

  5. आप सेलेक्ट WHERE IN () का उपयोग करके ऑर्डर कैसे रखते हैं?