दिलचस्प पोस्ट
सफ़ल पाठ 2 में जावा संहिता संकलन और चलाना जब भी मैं कोई नया प्रोजेक्ट तैयार करता हूं, तो एक्लिप्स स्वचालित रूप से ऐपकामपेट v7 लाइब्रेरी समर्थन क्यों जोड़ता है? क्या जावास्क्रिप्ट में गतिशील स्कॉपिंग को हासिल करने के लिए संभव है? एक जटिल साजिश के लिए मैनुअल लीजेंड का निर्माण एक संग्रह के अंतिम एन तत्वों को पाने के लिए Linq का उपयोग करना? क्या "त्रुटि: असंगत प्रकार: शून्य को परिवर्तित नहीं किया जा सकता है …" इसका अर्थ है? ऑटोसाइज़िंग मास्क प्रोग्रामैटिक बनाम इंटरफ़ेस बिल्डर / xib / nib बूटस्ट्रैप 3.1 में उपयोग किए जाने वाले .app फाइलें क्या हैं? एक कॉलम के एक से अधिक परिणाम पंक्तियों को एक से दूसरे कॉलम से जोड़ दें जेएलैबल का प्रिंट आकार सेट करना और प्रिंट पर जेआरडीओबॉटन डाल देना Express.js पर HTTPS को सक्षम करना प्रारंभिक प्रतिबद्धता को कैसे संदर्भित करें? जावा में पासवर्ड सुरक्षित ज़िप फ़ाइल विजुअल स्टूडियो: कॉन्टेक्सस्विचडडलॉक JQuery के सत्यापन प्लगइन के साथ कस्टम दिनांक स्वरूप

PHP में MSSQL में आईडी डालें कैसे?

प्रश्न का शीर्षक क्या कहता है जैसे कि SELECT @@IDENTITY AS ins_id जैसे कोई पूछताछ के SELECT @@IDENTITY AS ins_id , मुझे तालिका नाम या किसी भी अन्य जानकारी को निर्दिष्ट करने के लिए किस टेबल / डाटाबेस के बारे में बात कर रहा हूं, मुझे क्या ज़रूरत है?

वेब के समाधान से एकत्रित समाधान "PHP में MSSQL में आईडी डालें कैसे?"

@@IDENTITY की वर्तमान सत्र में उत्पन्न सबसे हाल की पहचान लौटाता है। अधिकतर मामलों में आप संभवत: बजाय SCOPE_IDENTITY का उपयोग करना चाहते हैं, जो वर्तमान दायरे में उत्पन्न सबसे हाल की पहचान को वापस देता है।

उदाहरण के लिए, यदि आप तालिका 1 में एक पंक्ति डालते हैं , लेकिन जो एक ट्रिगर डालने देता है जो तालिका 2 में एक पंक्ति सम्मिलित करता है, फिर @@IDENTITY तालिका 2 से पहचान लौटाएगा जबकि SCOPE_IDENTITY तालिका 1 से पहचान वापस करेगा।

 INSERT INTO my_table (my_column) VALUES ('test') -- return the identity of the row you just inserted into my_table -- regardless of any other inserts made by triggers etc SELECT SCOPE_IDENTITY() AS ins_id 

नहीं; यह mysql में SELECT LAST_INSERT_ID () जैसे बहुत काम करता है, जो डाली गई अंतिम पहचान मूल्य को पुनः प्राप्त कर रहा है। आप इस बारे में और अधिक जानने के लिए इस गहन परीक्षा पर गौर कर सकते हैं कि आप इसके बारे में क्या चिंतित होना चाहते हैं।

यहां कोड स्निपेट कुछ हद तक जूमला कोड पर आधारित है। $ dbh डेटाबेस कनेक्शन है (mssql_connect () का परिणाम)। यदि आप $ keyName तर्क पास करते हैं तो कुंजी का नाम (आईडी) अपडेट किया जाता है।

यह कोड डाला मूल्य का आईडी (या आवश्यक मान) प्राप्त करने के लिए MSSQL कीवर्ड "OUTPUT" का उपयोग कर रहा है।

 function mssql_insertObject($table, &$object, $keyName = NULL) { global $dbh; if($keyName) { $fmtsql = 'INSERT INTO '. $table .' ( %s ) OUTPUT INSERTED.' . $keyName . ' VALUES ( %s ) '; } else { $fmtsql = 'INSERT INTO '. $table .' ( %s ) VALUES ( %s ) '; } $fields = array(); foreach (get_object_vars( $object ) as $k => $v) { if (is_array($v) or is_object($v) or $v === NULL) { continue; } if ($k[0] == '_') { // internal field continue; } $fields[] = $k; $values[] = "'" . str_replace("'", "''", $v) . "'"; } $sql = sprintf( $fmtsql, implode( ",", $fields ) , implode( ",", $values ) ); $query = mssql_query($sql, $dbh); if($query === false) { return false; } if(is_resource($query)) { if($keyName) { $id = mssql_result($query, 0, 0); if($id) { $object->$keyName = $id; } } mssql_free_result($query); } return true; }