कोडाइनाइटर सक्रिय रिकॉर्ड: डालें, चुनें, अपडेट करें, हटाएं

विषय - सूची:

Anonim

डेटा अधिकांश अनुप्रयोगों की रक्तरेखा है। डेटा को इस तरह से संग्रहीत करने की आवश्यकता है कि अंतर्दृष्टि प्रदान करने और व्यापार निर्णयों को सुविधाजनक बनाने के लिए इसका और अधिक विश्लेषण किया जा सके। डेटा आमतौर पर डेटाबेस में संग्रहीत किया जाता है। डेटाबेस के साथ बातचीत करते समय मुख्य चिंताओं में सुरक्षा, सुगमता और डेटाबेस वेंडर की संरचित क्वेरी लैंग्वेज (SQL) का विशिष्ट कार्यान्वयन है।

सक्रिय रिकॉर्ड एक डिज़ाइन पैटर्न है जो डेटाबेस के साथ सहज, सुरक्षित और वाक्पटु तरीके से बातचीत करना आसान बनाता है।

सक्रिय रिकॉर्ड के निम्नलिखित फायदे हैं

  • सक्रिय रिकॉर्ड की सरल विधि श्रृंखलाओं के साथ रिकॉर्ड डालें, अपडेट करें और हटाएं
  • मापदंडों का उपयोग करके उपयोगकर्ता इनपुट को सुरक्षित तरीके से सबमिट करता है
  • आपको कई डेटाबेस इंजन जैसे कि MySQL, SQL सर्वर आदि के साथ काम करने की अनुमति देता है, बिना एप्लिकेशन कोड को लिखे
  • CodeIgniter पृष्ठभूमि में प्रत्येक डेटाबेस इंजन के लिए विशिष्ट ड्राइवरों का उपयोग करता है।

इस ट्यूटोरियल में, आप सीखेंगे:

  • सक्रिय रिकॉर्ड का उपयोग कैसे करें: उदाहरण
  • CodeIgniter डेटाबेस कॉन्फ़िगरेशन
  • CodeIgniter सम्मिलित करें सक्रिय रिकॉर्ड
  • CodeIgniter सक्रिय रिकॉर्ड का चयन करें
  • CodeIgniter अद्यतन सक्रिय रिकॉर्ड
  • CodeIgniter डिलीट एक्टिव रिकॉर्ड

सक्रिय रिकॉर्ड का उपयोग कैसे करें: उदाहरण

इस ट्यूटोरियल में, हम ट्यूटोरियल डेटाबेस पर चर्चा करेंगे। हमारे पास दो टेबल होंगे, एक विवरण के साथ दूसरे को आदेश देगा।

यह ट्यूटोरियल मानता है कि आपके पास MySQL डेटाबेस स्थापित है और चल रहा है।

ट्यूटोरियल डेटाबेस बनाने के लिए निम्नलिखित स्क्रिप्ट चलाएँ:

CREATE SCHEMA ci_active_record;USE ci_active_record;CREATE TABLE `order_details` (`id` int(11) NOT NULL AUTO_INCREMENT,`order_id` int(11) DEFAULT NULL,`item` varchar(245) DEFAULT NULL,`quantity` int(11) DEFAULT '0',`price` decimal(10,2) DEFAULT '0.00',`sub_total` decimal(10,2) DEFAULT '0.00',PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT = 1;CREATE TABLE `orders` (`id` int(11) NOT NULL AUTO_INCREMENT,`date` timestamp NULL DEFAULT NULL,`customer_name` varchar(245) DEFAULT NULL,`customer_address` varchar(245) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT = 1;

उपरोक्त कोड ci_active_record नाम का एक डेटाबेस बनाता है और ऑर्डर और ऑर्डर_डेट्स नामक दो तालिकाएँ बनाता है। दो टेबल के बीच के संबंध को ऑर्डर और ऑर्डर टेबल में कॉलम_ द्वारा कॉलम आईडी द्वारा परिभाषित किया गया है।

CodeIgniter डेटाबेस कॉन्फ़िगरेशन

अब हम इस डेटाबेस के साथ संवाद करने में सक्षम होने के लिए अपने एप्लिकेशन को कॉन्फ़िगर करेंगे।

एप्लिकेशन / कॉन्‍फ़िगरेशन / डेटाबेस.php में स्थित डेटाबेस कॉन्फ़िगरेशन फ़ाइल खोलें

कॉन्फ़िगरेशन फ़ाइल में निम्न पंक्तियों का पता लगाएं

'hostname' => 'localhost','username' => '','password' => '','database' => '',

उपरोक्त कोड को निम्न में अपडेट करें

'hostname' => 'localhost','username' => 'root','password' => 'letmein','database' => 'ci_active_record',

नोट: आपको उपयोगकर्ता नाम और पासवर्ड को बदलने की आवश्यकता होगी जो MySQL के आपके कॉन्फ़िगरेशन से मेल खाते हैं।

डेटाबेस कॉन्फ़िगरेशन विवरण के अलावा, हमें लोड होने पर डेटाबेस लाइब्रेरी को लोड करने के लिए CodeIgniter को भी बताना होगा

चरण 1) निम्नलिखित फ़ाइल एप्लिकेशन / कॉन्फ़िग / ऑटोलैड.php खोलें

चरण 2) $ ऑटोलॉड सरणी कुंजी पुस्तकालयों का पता लगाएँ और डेटाबेस लाइब्रेरी को लोड करें जैसा कि नीचे दिखाया गया है

$autoload['libraries'] = array('database');

यहां,

  • अनुप्रयोग शुरू होने पर उपरोक्त कोड डेटाबेस लाइब्रेरी को लोड करता है

CodeIgniter सम्मिलित करें सक्रिय रिकॉर्ड

परीक्षण के उद्देश्यों के लिए, हम एक नियंत्रक और परिभाषित मार्ग बनाएंगे जिसका उपयोग हम सक्रिय रिकॉर्ड के माध्यम से अपने आवेदन के साथ बातचीत करने के लिए करेंगे।

एक नया फ़ाइल एप्लिकेशन / नियंत्रक / ActiveRecordController.php बनाएँ

ActiveRecordController.php के लिए निम्न कोड जोड़ें

 '2018-12-19','customer_name' => 'Joe Thomas','customer_address' => 'US'];$this->db->insert('orders', $data);echo 'order has successfully been created';}}

यहां,

  • $ डेटा = […] एक सरणी चर डेटा को परिभाषित करता है जो डेटाबेस कुंजियों को सरणी कुंजियों के रूप में उपयोग करता है और उन्हें मान प्रदान करता है
  • $ यह-> डीबी-> इंसर्ट ('ऑर्डर', $ डेटा); डेटाबेस लायब्रेरी की सम्मिलित विधि को कॉल करता है, तालिका नाम आदेशों में और पैरामीटर के रूप में सरणी चर $ डेटा पास करता है। यह लाइन क्षेत्र के नाम के रूप में सरणी कुंजियों और डेटाबेस में डाले जाने वाले मानों के रूप में सरणी मानों का उपयोग करके SQL INSERT स्टेटमेंट जेनरेट करता है।

अब जब हमने सक्रिय रिकॉर्ड के लिए नियंत्रक विधि सफलतापूर्वक बना ली है, तो हमें अब एक मार्ग बनाने की आवश्यकता होगी जिसे हम नियंत्रक विधि को निष्पादित करने के लिए कहेंगे।

अब एप्लीकेशन / कॉन्फिग / मार्गों.पीपी में मार्गों को खोलें

मार्गों के लिए निम्न पंक्ति जोड़ें

$route['ar/insert'] = 'activerecordcontroller/store_order';

यहां,

  • हम ActiveRecordController के store_order को कॉल करने वाले मार्ग ar / insert को परिभाषित करते हैं।

आइए अब हमारी विधि का परीक्षण करने के लिए वेब सर्वर शुरू करें।

PHP के लिए अंतर्निहित सर्वर को शुरू करने के लिए निम्न कमांड चलाएँ

cd C:\Sites\ci-appphp -S localhost:3000

यहां,

  • कमांड लाइन के लिए उपर्युक्त कमांड ब्राउजर और पोर्ट 3000 पर अंतर्निहित सर्वर को शुरू करें।

निम्न URL को अपने ब्राउज़र में लोड करें

http: // localhost: 3000 / ए.आर. / डालें

आपको निम्न परिणाम मिलेंगे

order has successfully been created

MySQL ट्यूटोरियल डेटाबेस खोलें और ऑर्डर तालिका देखें

आप नई बनाई गई पंक्ति में सक्षम होंगे जैसा कि नीचे की छवि में दिखाया गया है

CodeIgniter सक्रिय रिकॉर्ड का चयन करें

इस भाग में, हम देखेंगे कि डेटाबेस में हमारे पास मौजूद अभिलेखों को कैसे पढ़ा जाए और उन्हें वेब ब्राउज़र में एक अनियंत्रित सूची के रूप में प्रदर्शित किया जाए।

ActiveRecordController के लिए निम्न विधि जोड़ें

public function index() {$query = $this->db->get('orders');echo "

Orders Listing

";echo "
    ";foreach ($query->result() as $row) {echo "
  • $row->customer_name
  • ";}echo "
";}

यहां,

  • $ क्वेरी = $ यह-> db-> get ('ऑर्डर'); सभी क्षेत्रों का चयन करते हुए आदेश तालिका के विरुद्ध चयनित क्वेरी चलाता है
  • इको "

    ऑर्डर लिस्टिंग "; आकार 3 का HTML शीर्षक प्रदर्शित करता है

  • गूंज "
      "; अन-ऑर्डर की गई HTML सूची के लिए शुरुआती टैग प्रिंट करता है
    • foreach ($ query-> result (as as $ row) {…} डेटाबेस से लौटे परिणामों के माध्यम से लूप के लिए लूप का उपयोग किया जाता है। इको "
    • $ पंक्ति-> customer_name "; डेटाबेस से customer_name प्रिंट करता है

    निम्न URL लोड करने से पहले, आप डेटाबेस में कुछ और रिकॉर्ड लोड कर सकते हैं।

    अब चयन क्वेरी के लिए एक मार्ग निर्धारित करता है

    खुला आवेदन / विन्यास / मार्गों। एफपी तालिका

    निम्न मार्ग जोड़ें

    $route['ar'] = 'activerecordcontroller';

    यहां,

    • यह मार्ग ActiveRecordController वर्ग की अनुक्रमणिका विधि को इंगित करता है। यह डिफ़ॉल्ट रूप से है, इसलिए हमने अनुक्रमणिका विधि को निर्दिष्ट नहीं किया है जैसा कि आपने रिकॉर्ड डालने वाले मार्ग के लिए किया था

    मान लें कि वेब सर्वर पहले से चल रहा है, निम्न URL लोड करें

    http: // localhost: 3000 / ar

    आपको उन परिणामों को देखने में सक्षम होना चाहिए जो आपके वेब ब्राउज़र में निम्नलिखित के समान हैं

    CodeIgniter अद्यतन सक्रिय रिकॉर्ड

    इस अनुभाग में, हम डेटाबेस को अपडेट करने के लिए सक्रिय रिकॉर्ड का उपयोग करने के तरीके के बारे में ताल देंगे। मान लीजिए कि हम ग्राहक के नाम जो थॉमस से जो को अपडेट करना चाहते हैं।

    ActiveRecordController वर्ग के लिए निम्न विधि जोड़ें

    public function update_order() {$data = ['customer_name' => 'Joe',];$this->db->where('id', 1);$this->db->update('orders', $data);echo 'order has successfully been updated';}

    यहां,

    • $ डेटा = […] उन क्षेत्रों और मूल्यों को परिभाषित करता है जिन्हें हम डेटाबेस तालिका में अपडेट करना चाहते हैं
    • $ यह-> db-> जहां ('आईडी', 1); अद्यतन क्वेरी का क्लॉज सेट करता है
    • $ इस-> db-> अद्यतन ('आदेश', $ डेटा); SQL अद्यतन क्वेरी उत्पन्न करता है और इसे हमारे डेटाबेस के विरुद्ध निष्पादित करता है।

    उपरोक्त कोड निम्नलिखित एसक्यूएल स्टेटमेंट का उत्पादन करेगा

    UPDATE orders SET customer_name = 'Joe' WHERE id = 1;

    चलिए अब मार्गों को अपडेट करते हैं। एप्लिकेशन / कॉन्फिग / रूम्स। एफपी

    निम्न मार्ग जोड़ें

    $route['ar/update'] = 'activerecordcontroller/update_order';

    परिवर्तनों को सुरक्षित करें

    वेब ब्राउज़र में निम्न URL लोड करें

    आइए अब डेटाबेस रिकॉर्ड को प्रदर्शित करें और देखें कि क्या परिवर्तन प्रभावित हुए हैं।

    जैसा कि आप ऊपर दी गई छवि से देख सकते हैं, पहला रिकॉर्ड जो थॉमस से जो तक अपडेट किया गया है।

    CodeIgniter डिलीट एक्टिव रिकॉर्ड

    अब हम डेटाबेस से एक रिकॉर्ड हटा देंगे। हम 3 की आईडी के साथ रिकॉर्ड हटा देंगे।

    ActiveRecordController के लिए निम्न विधि जोड़ें

    public function delete_order() {$this->db->where('id', 3);$this->db->delete('orders');echo 'order has successfully been deleted';}

    यहां,

    • $ यह-> db-> जहां ('आईडी', 1); जहां क्लॉज सेट करता है
    • $ यह-> db-> हटाना ('आदेश'); जहाँ खंड का उपयोग कर मापदंड के आधार पर आदेश तालिका में डेटाबेस पंक्ति को हटाता है।

    उपरोक्त कोड को निष्पादित करने के लिए, हमारे वेब ब्राउज़र में निम्न URL लोड करें

    http: // localhost: 3000 / ar / delete

    सारांश

    इस ट्यूटोरियल में, आपने सीखा है कि डेटाबेस से रिकॉर्ड्स को सम्मिलित करने, अपडेट करने, हटाने और चयन करने के लिए एक सक्रिय रिकॉर्ड कैसे काम करता है। हमने रिकॉर्ड बनाने, अपडेट करने और हटाने के लिए स्थैतिक मूल्यों के साथ काम किया। अगले ट्यूटोरियल में, हम एक उपयोगकर्ता इंटरफ़ेस बनाएंगे जिसका उपयोग उपयोगकर्ता डेटाबेस में गतिशील रूप से रिकॉर्ड बनाने के लिए कर सकता है।