CodeIgniter activerecord, अंतिम इन्सर्ट आईडी को पुनः प्राप्त करता है?


153

क्या CodeIgniter में एक नए रिकॉर्ड की अंतिम प्रविष्टि आईडी प्राप्त करने के लिए कोई विकल्प हैं?

$last_id = $this->db->insert('tablename',
    array('firstcolumn' => 'value',
    'secondcolumn' => 'value')
);

फ़ील्ड आईडी (स्वत: अंकन) की तालिका की संपत्तियों को ध्यान में रखते हुए फर्स्टकैल्यूम और सेकंडकॉम्बुलेशन।

इस तरह से आप निम्नलिखित कोड में इन्सर्ट आईडी का उपयोग कर सकते हैं।


4
मैं कई बार इस सवाल पर आता रहता हूं। आपका बहुत बहुत धन्यवाद!
१५:१४

जवाबों:


277

मुझ पर शर्म की बात है...

मैंने उपयोगकर्ता गाइड को देखा और पहला फ़ंक्शन है$this->db->insert_id();

यह भी activerecord आवेषण के साथ काम करता है ...

EDIT: मैंने लिंक अपडेट किया


29
userguide इस तरह की चीजों के लिए आपका सबसे अच्छा दोस्त है। मैं 2 साल के लिए codeigniter का उपयोग कर रहा हूँ और मुझे अभी भी इस तरह के कार्य मिलते हैं जिनके बारे में मुझे कभी पता नहीं था।
टॉम श्लिक

8
अपने फ़ंक्शन और इस फ़ंक्शन को लेन-देन में लपेटना सुनिश्चित करें क्योंकि क्वेरी शेड्यूलर इस फ़ंक्शन को चलाने से पहले कोई अन्य ऑब्जेक्ट सम्मिलित कर सकता है
Parker.sikand

3
लिंक मर चुका है, अद्यतन लिंक: ellislab.com/codeigniter/user-guide/database/helpers.html
womd

मुझे Insert_id () का उपयोग करने की आवश्यकता है, लेकिन मुझे नहीं पता है कि insert_id () को आईडी डालने के लिए दी गई है (इससे पहले)! मेरा मतलब है, क्या यह संभव है कि आईडी दूसरे अनुरोध में किसी अन्य इंसर्ट () से संबंधित हो?
एनएम

37

लास्ट इंसर्ट आईडी का मतलब है कि आप इस रिकॉर्ड को एक्टिव रिकॉर्ड में इस्तेमाल करके ऑटो इन्क्रीमेंट आईडी प्राप्त कर सकते हैं,

$this->db->insert_id() 
// it can be return insert id it is 
// similar to the mysql_insert_id in core PHP

आप इस लिंक का उल्लेख कर सकते हैं आप कुछ और सामान पा सकते हैं।

किसी क्वेरी को निष्पादित करने से संबंधित जानकारी


लिंक सही नहीं है। कृपया लिंक को ठीक करें। नया लिंक codeigniter.com/userguide3/database/helpers.html
शालीन इस्लाम

11

विशिष्ट तालिका के लिए आप $ इस का उपयोग नहीं कर सकते हैं-> db-> insert_id ()। यहां तक ​​कि आखिरी इंसर्ट भी इस तरह से किया जा सकता है। गलत हो सकता है। लेकिन मेरे लिए अच्छा काम कर रहा है

     $this->db->select_max('{primary key}');
     $result= $this->db->get('{table}')->row_array();
     echo $result['{primary key}'];

8

विवरणों की सूची जो आईडी और प्रश्न पूछने में मदद करती है

लास्ट इंसर्ड आईडी लाने के लिए: यह टेबल से आखिरी रिकॉर्ड लाएगा

$this->db->insert_id(); 

SQL क्वेरी प्राप्त करना इसे मोडल अनुरोध के बाद जोड़ते हैं

$this->db->last_query()


6

अपनी सम्मिलित क्वेरी के बाद, इस कमांड का उपयोग करें $this->db->insert_id(); अंतिम सम्मिलित आईडी को वापस करने के का ।

उदाहरण के लिए:

$this->db->insert('Your_tablename', $your_data);

$last_id =  $this->db->insert_id();

echo $last_id // assume that the last id from the table is 1, after the insert query this value will be 2.





0

Codeigniter 3 में, आप इसे निम्नानुसार कर सकते हैं:

if($this->db->insert("table_name",$table_data)) {
    $inserted_id = $this->db->insert_id();
    return $inserted_id;
}

आपको यहाँ से Codeigniter 3 के लिए मदद मिल सकती है https://codeigniter.com/user_guide/database/helpersers.html

Codeigniter 4 में, आप अंतिम प्रविष्ट आईडी प्राप्त कर सकते हैं:

$builder = $db->table("your table name");
if($builder->insert($table_data)) {
    $inserted_id = $db->insertID();
    return $inserted_id;
}

आपको यहाँ से कोडीनिटर 4 के लिए मदद मिल सकती है https://codeigniter4.github.io/userguide/database/helpers.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.