How to Fetch Data from Database in WordPress

How to Fetch Data from Database in WordPress – जिस तरह से हम insert()update() API Methods का प्रयोग करके अपने WordPress Database की किसी Table में किसी Record को Insert या Update कर सकते हैं, उसी तरह से WordPress हमें कुछ ऐसे API Methods Provide करता है, जिनका प्रयोग करके हम हमारे WordPress Database की किसी भी Table अथवा Custom Table के Data को Select करते हुए Retrieve भी कर सकते हैं।

जैसाकि हमने पहले भी कहा कि जहां तक सम्भव हो, किसी Specific Requirement को पूरा करने के लिए हमें RAW SQL Queries का प्रयोग नहीं करना चाहिए, बल्कि WordPress द्वारा Provided किसी Specific API Method को ही Use करना चाहिए।

क्योंकि WordPress Developers समय-समय पर विभिन्न प्रकार की जरूरतों को ध्‍यान में रखते हुए WordPress Database में Change करते रहते हैं। इसलिए यदि हम RAW SQL Queries Use करते हैं, तो हो सकता है कि हम किसी Plugin या Theme में RAW SQL Query के माध्‍यम से जिस Data को Access कर रहे हैं, उस Data को Core WordPress Database में Change या Remove कर दिया जाए।

इस स्थिति में हम Particular WordPress Table या किसी Particular WordPress Field के आधार पर जो Query Create किया है, WordPress Database Modification के बाद वह Query काम नहीं करेगा और हमारा Theme या Plugin, WordPress के Current या Future Version के लिए अनुपयोगी हो जाएगा।

इसीलिए जहां तक सम्भव हो, किसी Specific Requirement को पूरा करने के लिए हमें RAW SQL Queries का प्रयोग नहीं करना चाहिए, बल्कि WordPress द्वारा Provided किसी Specific API Method को ही Use करना चाहिए।

Retrieving Single Value

कई बार हमें हमारे WordPress Database की किसी Table के किसी Record के केवल एक Field के Data की जरूरत होती है। इस जरूरत को पूरा करने के लिए हम WordPress Database API के get_var() Method को निम्नानुसार Use कर सकते हैं:

<?php
    global $wpdb;
    $post_title = $wpdb->get_var("SELECT post_title FROM $wpdb->posts WHERE ID = 1");
    echo $post_title;
?>

जब हम इस Code को Execute करते हैं, तो get_var() Method, WordPress Database के wp_posts Table से उस Post का Title Return करता है, जिसका ID 1 है जिसे $post_title Variable में Store करके Echo कर दिया जाता है।

जब हम इस Method को Use करते हैं, तब हमें हमेंशा इस बात का ध्‍यान रखना होता है get_var() Method में Specified Query एक ही Record के एक ही Field को Return करे। अन्‍यथा ये Method Fail हो जाएगा।

जब हम get_var() Method को Use करते हैं, तब भी Database से तो पूरा Record ही Return होता है लेकिन ये पूरा Record Cached रहता है, जिसे बाद में जरूरत के अनुसार Use किया जा सकता है। जबकि यदि इस Method के Execute होने पर Database से कोई भी Result Return न हो, तो इस स्थिति को Represent करने के लिए ये Method NULL Return करता है।

ये Method मूल रूप से तीन Argument Accept कर सकता है। जहां पहला Argument वह Query होता है, जिसे Fire किया जाना है। यदि हम इस Argument के रूप में NULL Specify कर दें, तो पिछली Query द्वारा जो Result Generate हुआ था, उस Cached Result के आधार पर Specified Variable Return हो जाता है।

दूसरे Argument के रूप में हम column_offset Specify कर सकते हैं। ये एक Numerical यानी Integer मान होता है, जिसका Default मान 0 होता है और ये हमें Desired Column को Specify करने की सुविधा देता है।

यानी यदि हम First Column के Data को Variable के रूप में Return करना चाहते हैं, तो इस दूसरे Argument के रूप में हमें 0 Specify करना होता है जबकि Returned Result के तीसरे Field के Result को Return करवाने के लिए हमें इस दूसरे Argument के रूप में 2 Specify करना होता है। जैसे:

        <?php
            global $wpdb;
            $ret_value = $wpdb->get_var("SELECT * FROM $wpdb->posts", 4);
            echo $ret_value;
        ?>

जैसाकि इस Code में हम देख सकते हैं कि हमने wp_posts Table के सभी Records को Return करने के लिए SELECT Query Specify किया है, लेकिन दूसरे Argument में हमने 4 मान Specify करके WordPress Engine को बताया है कि हमें Return होने वाले सभी Records में से First Record के पांचवे Column का Data Return करना है, जो कि wp_posts Table में post_content होता है।

इसी तरह से तीसरे Argument के रूप में हम row_offset Specify कर सकते हैं। ये भी एक Numerical यानी Integer मान होता है, जिसका Default मान 0 होता है और ये हमें Desired Row को Specify करने की सुविधा देता है।

यानी यदि हम First Row के किसी Specific Field के Data को Variable के रूप में Return करना चाहते हैं, तो इस तीसरे Argument के रूप में हमें 0 Specify करना होता है जबकि Returned Result के तीसरे Row के तीसरे Field का मान Result के रूप में Return करवाने के लिए हमें इस दूसरे व तीसरे Argument के रूप में मान 2 Specify करना होता है। जैसे:

        <?php
            global $wpdb;
            $ret_value = $wpdb->get_var("SELECT * FROM $wpdb->posts", 2, 2);
            echo $ret_value;
        ?>

जैसाकि इस Code में हम देख सकते हैं कि हमने wp_posts Table के सभी Records को Return करने के लिए SELECT Query Specify किया है, लेकिन दूसरे Argument में हमने 4 मान Specify करके WordPress Engine को बताया है कि हमें Return होने वाले सभी Records में से First Record के पांचवे Column का Data Return करना है, जो कि wp_posts Table में post_content होता है।

Retrieving Single Column

कई बार हमें हमारे WordPress Database की किसी Table के सभी Record के केवल एक Column के Data की जरूरत होती है। इस जरूरत को पूरा करने के लिए हम WordPress Database API के get_col() Method को निम्नानुसार Use कर सकते हैं:

<?php
            global $wpdb;
            $post_titles = $wpdb->get_col(
                "SELECT post_title FROM $wpdb->posts WHERE post_type = 'post'"
            );
            
            echo '<pre>';
            print_r($post_titles);
            echo '</pre>';
?>

जब हम इस Code को Execute करते हैं, तो get_col() Method, WordPress Database के wp_posts Table से हर उस Post का Title Return करता है, जिसका post_type “post” होता है।

जब हम इस Method को Use करते हैं, तब हम इस Method में दो Arguments Pass कर सकते हैं। जहां पहला Argument वह Query होता है, जिसे Fire किया जाना है और यदि हम इस Argument के रूप में NULL Specify कर दें, तो पिछली Query द्वारा जो Result Generate हुआ था, उस Cached Result के आधार पर Specified Column Return हो जाता है।

जबकि दूसरे Argument के रूप में हम column_offset Specify कर सकते हैं, जिसका Default मान 0 होता है और ये मान Default रूप से Table के First Column को Represent करता है। जबकि यदि हम Table के तीसरे Column को Resultant Array के रूप में Return करना चाहें, तो हमारा Query कुछ निम्नानुसार हो सकता है, जिसमें दूसरे Argument के रूप में Value 2 Specified है:

<?php
            global $wpdb;
            $ret_value = $wpdb->get_col(
                "SELECT * FROM $wpdb->posts WHERE post_type = 'post'", 2
            );
            
            echo '<pre>';
            print_r($ret_value);
            echo '</pre>';
?>

जब उपरोक्त Code Execute होता है, तब इस Code द्वारा Select होने वाले सारे Records का केवल तीसरा Column ही Resultant Array के रूप में Return होता है, क्योंकि इस Code में Use किए गए get_col() Method के दूसरे Argument के रूप में हमने मान 2 Specify कर दिया है, जो WordPress Engine को केवल तीसरे Column के Data को ही Resultant Array के रूप में Return करने का Instruction देता है।

Retrieving Single Record

जब हम हमारे WordPress Database की किसी Table के केवल एक Record को ही Return करना चाहते हैं, तब हम इस जरूरत को पूरा करने के लिए WordPress Database API के get_row() Method को निम्नानुसार Use कर सकते हैं:

<?php
            global $wpdb;
            $post = $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID = 1");

            echo '<pre>';
            print_r($post);
            echo '</pre>';
?>

जब हम इस Code को Execute करते हैं, तो get_row() Method, WordPress Database के wp_posts Table से उस Post के सभी Fields के Data Return करता है, जिसका ID 1 होता है।

get_row() Method किसी Query से पूरी Row को Select करता है। इसलिए ये Function Associative Array, Numerical Indexed Array या Object के रूप में तीन तरीकों से Selected Record या Row को Return कर सकता है। जहां Object इस Function द्वारा Selected Record को Return करने का Default तरीका है।

यदि इस Method में Specify की गई Query एक से ज्यादा Records Return करता है, तो केवल उस स्थिति में इस Function के तीसरे Argument में Specify किए गए मान के आधार पर ही Record ही Return होता है, जबकि अन्‍य सभी Rows या Records Future Use के लिए Cache में Save हो जाते हैं।

जबकि यदि Specified Query द्वारा Database से कोई Record Return नहीं होताए तो इस Function द्वारा एक ऐसा Object Return होता है, जिसमें केवल NULL होता है,

ये Method मूल रूप से तीन Arguments Accept कर सकता है, जहां पहला Argument वह Query होता है, जिसे Fire किया जाना है।

जबकि दूसरे Argument के रूप में हम output_type Specify कर सकते हैं और output_type के रूप में हम OBJECT, ARRAY_A या ARRAY_N में से किसी एक को Value के रूप में Specify कर सकते हैं। जहां OBJECT इस Argument का Default मान होता है।

जब हम दूसरे Argument के रूप में ARRAY_A मान Specify करते हैं, तब ये Method Return होने वाले Result को एक Associative Array के रूप में Return करता है। जबकि ARRAY_N मान Specify करने पर Return होने वाला Result एक Numerical Indexed Array के रूप में होता है।

इसी तरह से तीसरे Argument के रूप में हम row_offset Specify कर सकते हैं जो कि एक Numerical यानी Integer मान होता है, जिसका Default मान 0 होता है और ये हमें Desired Row को Specify करने की सुविधा देता है।

यानी यदि हम किसी Table के 4th Row को Select करके एक Associative Array के रूप में Return करना चाहें, तो हम इस Method को निम्नानुसार तरीके से Use कर सकते हैं:

<?php
            global $wpdb;
            $post = $wpdb->get_row("SELECT * FROM $wpdb->posts", ARRAY_N, 3);

            echo '<pre>';
            print_r($post);
            echo '</pre>';
?>

Retrieving Full Result-Set

जब हम हमारे WordPress Database की किसी Table से Specified Query के आधार पर एक से ज्यादा Records Return करना चाहते हैं, तब हम इस जरूरत को पूरा करने के लिए WordPress Database API के get_result() Method को निम्नानुसार Use कर सकते हैं:

<?php
    global $wpdb;
    $posts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type='post'");
                
    echo '<pre>';
    print_r($posts);
    echo '</pre>';
?>

जब हम इस Code को Execute करते हैं, तो get_results() Method, WordPress Database के wp_posts Table से हर उस Post के सभी Fields को एक Object के रूप में Return करता है, जिसका post_type “post” होता है।

get_results() Method सामान्‍यत: Database से Query के आधार पर बहुत सारे Records एक Array के रूप में Return करता है। जबकि यदि Specified Query द्वारा Database से एक भी Record Return न हो, तो ये Method NULL Return करता है।

इस Function द्वारा Return होने वाले Array का हर Element, Query से Return होने वाले Result का एक Row होता है और get_row() Method की तरह ही इस Method से भी एक Associative Array या Numbered Array के रूप में Results को Return करवाया जा सकता है।

ये Method मूल रूप से दो Arguments Accept करता है, जहां पहला Argument वह Query होता है, जिसे Fire किया जाना है और यदि हम इस Argument के रूप में NULL Specify कर दें, तो पिछली Query द्वारा जो Result Generate हुआ था, उस Cached Result को ही ये Function अपनी Query के रूप में Use कर लेता है।

जबकि दूसरे Argument के रूप में हम इसमें चार में से कोई एक Pre-Defined Constants Assign कर सकते हैं। जो कि निम्नानुसार हैं:

  1. OBJECT: इस मान को Specify करके हम इस Function से ROW Objects का एक Indexed Array Output के रूप में Return करवा सकते हैं।
  2. OBJECT_K: इस मान को Specify करके हम इस Function से ROW Objects का एक Associative Array Output के रूप में Return करवा सकते हैं, जहां First Column का Value, Key की तरह Use कर लिया जाता है।
  3. ARRAY_A: इस मान को Specify करके हम इस Function से Associative Array का एक Numerically Indexed Array, Output के रूप में Return करवा सकते हैं।
  4. ARRAY_N: इस मान को Specify करके हम इस Function से Numerically Indexed Array का एक Numerically Indexed Array, Output के रूप में Return करवा सकते हैं।

चूंकि ये Function $wpdb-query() Function को Use करता है, इसलिए सभी Class Variables का Properly Set होना जरूरी होता है। जबकि SELECT Statement Use करने पर Return होने वाले कुल Rows की संख्‍या $wpdb->num_rows नाम की Property में Stored रहता है।

WordPress in Hindi - BccFalna.comये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Advance WordPress in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।

Advance WordPress in Hindi | Page: 835 | Format: PDF

BUY NOW GET DEMO REVIEWS