PHP Database Query – CRUD – ज्यादातर SQL Queries Creation, Retrieval, Updation, Insertion व Deletion के काम से संबंधित होती है, जिसे एक शब्द में CRUID कहा जाता है। इस Section में हम इसी विषय पर बात करेंगे।
Sending Query to Database
Database पर Connection Establish कर लेने के बाद हमें Database पर अपनी जरूरत के अनुसार SQL Queries को Fire करना होता है। SQL Queries को Database पर Fire करने का काम query() Method द्वारा किया जाता है, जिसका Prototype निम्नानुसार होता हैः
class mysqli {
mixed query(string queryString, int resultmode)
}
इस Method में पहले Parameter के रूप में हमें उस SQL Query को Specify करना होता है, जिसे हम Database Connection पर Fire करना चाहते हैं, जबकि दूसरे Parameter में हम निम्न में से किसी एक Constant मान को Specify करके इस Method के Behavior को Modify कर सकते हैं:
- MYSQLI_STORE_RESULT Constant
इस मान को Specify करने पर Query के Fire होने पर Return होने वाला Resultset एक Buffer में Stored रहता है, जिससे Return होने वाले सभी Records Navigation के लिए तुरन्त Available रहते हैं।
ये इस Function का Default मान होता है। लेकिन ये Constant ज्यादा Memory Consume करता है। इसका प्रयोग तभी किया जाना चाहिए, जबकि हमें Query से Return होने वाले सारे Results को एक साथ Process करने की जरूरत हो।
- MYSQLI_USE_RESULT Constant
इस Constant को Specify करने पर Return होने वाला Result किसी Buffer में Store नहीं होता। इसलिए Return होने वाला Resultset Instantly Available रहता है। हालांकि इस Constant को Use करने पर Database की Performance काफी Improve हो जाती है, लेकिन हम Return होने वाले Resultset पर एक से ज्यादा Operations को Perform करने में सक्षम नहीं होते।
Retrieving Data
Database से किसी Resultset को प्राप्त करने के लिए हमें SELECT SQL Command या SELECT Query को Database Connection पर Fire करना होता है और Return होने वाले Resultset को Iterate करके हर Record को Access करना होता है। इस जरूरत को पूरा करने के लिए हम निम्नानुसार PHP Code लिख सकते हैं:
//Filename: AllSubscribers.php <?php $title = "All Subscribers"; include_once('header.php'); // Connect to the database server $db_conn = new mysqli("localhost", "registration", "pwd", "registration"); if ($db_conn->errno) { printf("Unable to connect to the database:<br /> %s", $db_conn->error); exit(); } // Make the query. $query = "SELECT `userid`, `username`, `email`, `regtime` FROM `subscribers` "; // Send the query to MySQL $result = $db_conn->query($query, MYSQLI_STORE_RESULT); // Iterate through the result set while(list($userid, $username, $email, $regtime) = $result->fetch_row()) printf("(%s) %s: \$%s %s <br />", $userid, $username, $email, $regtime); include_once('footer.php'); ?>
इस PHP Script में हमने एक नए Method fetch_row() का प्रयोग किया है। ये Method Query Fire होने के बाद Return होने वाले Resultset से एक बार में एक Record को Return करता है, जिसे list() Function का प्रयोग करके Record के हर Column को अलग-अलग Variables में Store कर लिया जाता है और एक Printf() Statement द्वारा Output में Render कर दिया जाता है।
सभी Records को Render करने के लिए एक while Loop का प्रयोग किया गया है, ताकि Return होने वाले सभी Records जब तक Render नहीं हो जाते, तब तक Loop चलता रहता है। इस Script का Output निम्नानुसार दिखाई देता हैः

Inserting Data
Database में किसी Record को Insert करने के लिए हमें INSERT Query Statement को Use करना होता है। यदि हम किसी User Registration Information को Database में Insert करना चाहें, तो HTML Form से आने वाले Data के अनुसार निम्नानुसार PHP Script का प्रयोग करते हुए Database में Store कर सकते हैं, जैसाकि पिछले Section में किया थाः
<?php include_once('header.php'); // Connect to the database server $db_conn = new mysqli("localhost", "registration", "pwd", "registration"); if ($db_conn->errno) { printf("Unable to connect to the database:<br /> %s", $db_conn->error); exit(); } // Make the query. $query = "INSERT INTO subscribers (username, email, pwd) VALUES ('Rahul', 'rahul@gmail.com', SHA1('ppaa'))"; // Send the query to MySQL $result = $db_conn->query($query, MYSQLI_STORE_RESULT); echo "Total inserted records: $result"; include_once('footer.php'); ?> //Output: Total inserted records: 1
उपरोक्त PHP Code Rahul नाम के एक नए User की Information को Database में Store कर रहा है। क्योंकि हमने INSERT Query को निम्नानुसार Specify किया हैः
$query = “INSERT INTO subscribers (username, email, pwd)
VALUES (‘Rahul’, ‘rahul@gmail.com’, SHA1(‘ppaa’))”;
उपरोक्त Query में यदि हम HTML Form से आने वाले Data को Query के VALUES Section में निम्नानुसार Specify कर दें, तो HTML Form से आने वाला Data Database में Store हो जाएगाः
$query = “INSERT INTO subscribers (username, email, pwd)
VALUES ($_POST[‘username’], $_POST[’email’], SHA1($_POST[‘pwd’]))”;
Updating Data
Database में किसी Record को Insert करने के बाद कई बार हमें उस Record के Data को Modify या Change करने की जरूरत पडती है। इस जरूरत को पूरा करने के लिए हमें UPDATE Query Statement को Use करना होता है। उदाहरण के लिए यदि हम किसी User Registration Information को Database में Update करना चाहें, तो HTML Form से आने वाले Data के अनुसार निम्नानुसार PHP Script का प्रयोग करते हुए Database के Record को Modify कर सकते हैं:
<?php include_once('header.php'); // Connect to the database server $db_conn = new mysqli("localhost", "registration", "pwd", "registration"); if ($db_conn->errno) { printf("Unable to connect to the database:<br /> %s", $db_conn->error); exit(); } // Make the query. $query = "UPDATE subscribers SET username='mohit' WHERE username='rahul'"; // Send the query to MySQL $result = $db_conn->query($query, MYSQLI_STORE_RESULT); echo "Total updated records: $result"; include_once('footer.php'); ?> //Output: Total updated records: 1
उपरोक्त PHP Code उस User का Username Change करके “mohit” कर देगा, जिसका Username पहले “rahul” था। यदि हम चाहते हैं कि जिस User का Username Change करना है, उस User का Username व नया Username दोनों एक HTML Form से आए, तो हम हमारी इस PHP Script की UPDATE Query को निम्नानुसार Modify कर सकते हैं:
$query = “UPDATE subscribers SET username=$_POST[‘newusername’]
WHERE username=’oldusername’“;
Delete Data
Database में किसी Record को Insert करने के बाद कई बार हमें उस Record या अन्य Records को Delete करने की जरूरत भी पडती है। उदाहरण के लिए जब कोई Registered User हमारी Site से Unregister करना चाहता है, तो हमें उस User की Information को Delete करना होता है। इस जरूरत को पूरा करने के लिए हमें DELETE Query Statement को Use करना होता है।
उदाहरण के लिए यदि हम किसी User Registration Information को Database से DELETE करना चाहें, तो HTML Form से आने वाले Data के Username के आधार पर निम्नानुसार PHP Script का प्रयोग करते हुए Database के Record को Delete कर सकते हैं:
<?php include_once('header.php'); // Connect to the database server $db_conn = new mysqli("localhost", "registration", "pwd", "registration"); if ($db_conn->errno) { printf("Unable to connect to the database:<br /> %s", $db_conn->error); exit(); } // Make the query. $query = "DELETE FROM subscribers WHERE username='mohit'"; // Send the query to MySQL $result = $db_conn->query($query, MYSQLI_STORE_RESULT); echo "Total deleted records: $result"; include_once('footer.php'); ?> //Output: Total deleted records: 1
उपरोक्त PHP Code उस User के Record को Delete कर देगा, जिसका Username “mohit” है। यदि हम चाहते हैं कि जिस User को Delete करना है, उस User का Username एक HTML Form से आए, तो हम हमारी इस PHP Script की UPDATE Query को निम्नानुसार Modify कर सकते हैं:
$query = “DELETE FROM subscribers
WHERE username=$_POST[‘username’]”;
INSERT, UPDATE व DELETE तीनों ही Statements क्रमश: कुल Insert, Update या Delete होने वाले Records की संख्या Return करते हैं।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook PHP in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
PHP in Hindi | Page: 647 | Format: PDF