MySQL एक मुख्य Open Source Database Management System है. यह एक Multi-user और Multithreaded Database Management System भी है.
MySQL Web पर विशेष रूप से लोकप्रिय है. यह बहुत लोकप्रिय LAMP Platform के कुछ हिस्सो मे से एक है जैसे Linux, Apache, MySQL और PHP.
MySQL Database सबसे महत्वपूर्ण OS Platforms पर उपलब्ध है.
यह BSD Unix, Linux, Windows और Mac पर चलता है. Wikipedia, YouTube, Facebook आदि MySQL का उपयोग करते है.
MySQL दो Versions मे आता है MySQL Server System और MySQL Embedded System है.
MySQL का Development 1994 मे एक Swedish Company MySQL AB ने शुरू किया था. Sun Microsystems ने 2008 मे MySQL AB का Acquisition किया और Sun 2010 मे Oracle द्वारा खरीदा गया था.
MySQL, PostgreSQL, Firebird, SQLite, Derby और HSQLDB सबसे प्रसिद्ध Open Source Database Systems है.
MySQL C/C++ मे Develop किया गया है C/C++ के अलावा PHP, Python, Java, C#, Eiffel, Ruby, Tcl or Perl के लिए APIs मौजूद है.
MySQL एक Database Management System है.
MySQL Databases Relational है.
MySQL Software एक Open Source है.
MySQL Database Server, Reliable, Scalable और उपयोग में आसान है.
MySQL Server Client / Server और Embedded Systems मे काम करता है.
RTOS (QNX)
Unix (Solaris, HP-UX, AIX)
BSD (Mac OS X, FreeBSD)
Windows (Windows 2000, Windows NT)
Linux (RedHat, SUSE, Mandrake, Debian)
Embedded Linux (MontaVista, LynuxWorks BlueCat)
Drivers
ODBC
JDBC
.NET
C++
C
C++
C#
Perl
PHP
Java
Python
Delphi
Visual Basic
Eclipse
NetBeans
Microsoft Visual Studio
Borland Delphi and JBuilder
MySQL एक मुख्य Open Source Database Management System है. यह एक Multi-user और Multithreaded Database Management System भी है.
MySQL Web पर विशेष रूप से लोकप्रिय है. यह बहुत लोकप्रिय LAMP Platform के कुछ हिस्सो मे से एक है जैसे Linux, Apache, MySQL और PHP.
MySQL Database सबसे महत्वपूर्ण OS Platforms पर उपलब्ध है.
यह BSD Unix, Linux, Windows और Mac पर चलता है. Wikipedia, YouTube, Facebook आदि MySQL का उपयोग करते है.
MySQL दो Versions मे आता है MySQL Server System और MySQL Embedded System है.
MySQL का Development 1994 मे एक Swedish Company MySQL AB ने शुरू किया था. Sun Microsystems ने 2008 मे MySQL AB का Acquisition किया और Sun 2010 मे Oracle द्वारा खरीदा गया था.
MySQL, PostgreSQL, Firebird, SQLite, Derby और HSQLDB सबसे प्रसिद्ध Open Source Database Systems है.
MySQL C/C++ मे Develop किया गया है C/C++ के अलावा PHP, Python, Java, C#, Eiffel, Ruby, Tcl or Perl के लिए APIs मौजूद है.
MySQL एक Database Management System है.
MySQL Databases Relational है.
MySQL Software एक Open Source है.
MySQL Database Server, Reliable, Scalable और उपयोग में आसान है.
MySQL Server Client / Server और Embedded Systems मे काम करता है.
RTOS (QNX)
Unix (Solaris, HP-UX, AIX)
BSD (Mac OS X, FreeBSD)
Windows (Windows 2000, Windows NT)
Linux (RedHat, SUSE, Mandrake, Debian)
Embedded Linux (MontaVista, LynuxWorks BlueCat)
Drivers
ODBC
JDBC
.NET
C++
C
C++
C#
Perl
PHP
Java
Python
Delphi
Visual Basic
Eclipse
NetBeans
Microsoft Visual Studio
Borland Delphi and JBuilder
एक Database Table मे Specific Data Types जैसे कि Numeric और String के साथ एकाधिक Columns होते है. MySQL केवल Numeric और String के अलावा अन्य Data Types प्रदान करता है. MySQL मे प्रत्येक Data Types निम्नलिखित विशेषताओं से निर्धारित किया जा सकता है.
Text
Numbers
Dates and times
इनमे से प्रत्येक के भीतर कई रूप है जिनमे से कुछ MySQL के Specific है जिनका आप उपयोग कर सकते है. अपने Columns Types को ठीक से चुनना न केवल यह निर्धारित करता है कि कौन सी जानकारी Stored की जा सकती है और कैसे लेकिन Database के Overall प्रदर्शन को भी प्रभावित करता है आप नीचे Table मे MySQL के लिए उपलब्ध अधिकांश प्रकार Listed है वे कितना स्थान लेते है और संक्षिप्त विवरण क्या है.
Type | Size | Description |
---|---|---|
CHAR[Length] | Length bytes | A fixed-length Field From 0 to 255 characters long. |
VARCHAR(Length) | String length + 1 bytes | A fixed-length Field From 0 to 255 Characters long. |
TINYTEXT | String length + 1 Bytes | A String with a Maximum Length of 255 Characters. |
TEXT | String Length + 2 bytes | A String with a Maximum Length of 65,535 Characters. |
MEDIUMTEXT | String Length + 3 Bytes | A String with a Maximum Length of 16,777,215 Characters. |
LONGTEXT | String length + 4 bytes | A String with a Maximum Length of 4,294,967,295 Characters. |
TINYINT[Length] | 1 byte | Range of -128 to 127 or 0 to 255 Unsigned. |
SMALLINT[Length] | 2 bytes | Range of -32,768 to 32,767 or 0 to 65535 Unsigned. |
MEDIUMINT[Length] | 3 bytes | Range of -8,388,608 to 8,388,607 or 0 to 16,777,215 Unsigned. |
INT[Length] | 4 bytes | Range of -2,147,483,648 to 2,147,483,647 or 0 to 4,294,967,295 unsigned. |
BIGINT[Length] | 8 bytes | Range of -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 or 0 to 18,446,744,073,709,551,615 unsigned. |
FLOAT | 4 bytes | A Small Number With a Floating Decimal Poin. |
DOUBLE[Length, Decimals] | 8 bytes | A Large Number with a Floating Decimal Poin. |
DECIMAL[Length, Decimals] | Length + 1 or Length + 2 bytes | A DOUBLE Stored as a string, Allowing for a Fixed Decimal Point |
DATE | 3 bytes | In the format of YYYY-MM-DD. |
DATETIME | 8 bytes | In the format of YYYY-MM-DD HH:MM:SS. |
TIMESTAMP | 4 bytes | In the format of YYYYMMDDHHMMSS; acceptable range ends inthe year 2037. |
TIME | 3 bytes | In the format of HH:MM:SS |
ENUM | 1 or 2 bytes | Short for enumeration, which means that each column can haveone of several possible values. |
SET | 1, 2, 3, 4, or 8 bytes | Like ENUM except that each column can have more than one ofseveral possible values. |
MySQL ने Version 5.7.8 के बाद से एक Native JSON Data Type का समर्थन किया है जो आपको JSON Documents को अधिक कुशलता से Store और Manage करने की अनुमति देता है. मूल रूप से JSON Data Type और JSON Documents और Optimal Collection प्रारूप का स्वचालित सत्यापन प्रदान करता है.
इस स्थिति मे मैंने उपयोगकर्ता Root को -u flag के साथ Specifie किया है और उसके बाद -p Flag का उपयोग किया है इसलिए MySQL एक Password के लिए संकेत देता है. Login पूरा करने के लिए आप अपना Current Password Enter करे.
यदि आपको अपना Root या कोई अन्य Password को Database में बदलना है तो Command Line के माध्यम से MySQL के लिए Password बदलने के लिए आप नीचे देख सकते है.
अब आपको एक MySQL Prompt पर होना चाहिए जो कि इसके समान दिखता है.
mysql>
Name के साथ एक Database को बनाने के लिए tutorial_database निम्न Command Type करे.
CREATE DATABASE tutorial_database;
यदि समान Name का एक Database पहले से मौजूद है तो एक नया Database नही बनाया जाएगा और आपको यह Error प्राप्त होगी.
ERROR 1007 (HY000): Can't create database 'tutorial_database'; database exists
इस Error को देखने से बचने के लिए निम्न आदेश का उपयोग करे.
CREATE DATABASE IF NOT EXISTS tutorial_database;
उपरोक्त Command केवल Database tutorial_database बना देगा अगर उस Name का Database पहले से मौजूद नहीं है.
आपके द्वारा बनाए गए Database को देखने के लिए बस नीचे लिखी Command जारी करे.
SHOW DATABASES;
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
| tutorial_database |
+--------------------+
4 rows in set (0.00 sec)
एक MySQL Database को बनाने या हटाने के लिए आपको विशेष अधिकार की आवश्यकता होगी. अगर आपको Root User के Access तक पहुंच ना है तो आप Mysql Mysqladmin Binary का उपयोग करके कोई भी Database बना सकते है.
किसी भी Database को हटाने के दौरान सावधान रहें क्योंकि आप अपने Database मे उपलब्ध सभी Data खो देंगे.
[root@host]# mysqladmin -u root -p drop TUTORIALSROOT
Enter password:***********
यह आपको एक Warning देगा और यह पुष्टि करेगा कि क्या आप वास्तव मे इस Database को हटाना चाहते है या नही.
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.
Do you really want to drop the 'TUTORIALSROOT' database [y/N] y
Database "TUTORIALSROOT" dropped
MySQL Database को बनाने या हटाने के लिए PHP mysql_query Function का उपयोग करता है और यह Function दो Parameters को लेता है और Success और Failure या TRUE और FALSE देता है.
bool mysql_query( sql, connection );
Database को हटाने के लिए आप नीचे दिये गये Example का उपयोग कर सकते है.
<html>
<head>
<title>Deleting MySQL Database Example</title>
</head>
<body>
<?php
$dbhost = 'localhost:3026';
$dbuser = 'tutorialsroot';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully<br />';
$sql = 'DROP DATABASE TUTORIALS';
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not delete database: ' . mysql_error());
}
echo "Database TUTORIALS deleted successfully\n";
mysql_close($conn);
?>
</body>
</html>
जब आप Command Line के माध्यम से MySQL Database पर काम कर रहे है तो आपको उस Database को Select करना होगा जिस पर आप SQL Queries Wxecute कर रहे है.
Database को Sampledb Current Database बनाने के लिए नीचे दी गई Queries को Wxecute करे.
mysql> USE sampledb;
आप अपने Database को केवल एक बार बना सकते है लेकिन जब भी आप Mysql Session शुरू करते है तो आपको इसे उपयोग करने के लिए Select होगा.
उदाहरण में दिखाए गए अनुसार आप USE Statement जारी करके ऐसा कर सकते है.
उपरोक्त Command आपको Output देता है और यह दर्शाता है कि Database बदल गया है.
mysql> USE sampledb;
Database changed
आप नीचे दी गई Command को Execute करके Database को Select कर सकते है.
mysql> SELECT database();
+-------------------+
| database() |
+-------------------+
| sampledb |
+-------------------+
1 row in set (0.00 sec)
MySQL CREATE TABLE Command को Database मे एक New Table को बनाने के लिए उपयोग किया जाता है Table निर्माण Command को तीन चीजों की आवश्यकता है.
Name of the Table
Name of the Fields
Definitions for Each Field
mysql> USE sampledb;
एक MySQL Table को बनाने के लिए यहां एक सामान्य SQL Syntax दिया गया है.
CREATE TABLE table_name (column_name column_type);
अब हम Tutorials Database मे निम्नलिखित Table बना देंगे.
tutorials_tbl(
tutorial_id INT NOT NULL AUTO_INCREMENT,
tutorial_title VARCHAR(100) NOT NULL,
tutorial_author VARCHAR(40) NOT NULL,
submission_date DATE,
PRIMARY KEY ( tutorial_id )
);
Note
यहा पर NOT NULL एक Field Attribute है और इसका उपयोग किया जाता है क्योंकि हम इस क्षेत्र को NULL नहीं करना चाहते हैं यदि आप NULL Value के साथ एक Record बनाने का प्रयास करेंगे तो MySQL एक Error बढ़ाएगा.
Field Attribute AUTO_INCREMENT आगे बढ़ने के लिए और Id Field में अगले उपलब्ध Number को जोड़ने के लिए MySQL को Specifies करती है. PRIMARY KEY को PRIMARY KEY के रूप मे एक Column को परिभाषित करने के लिए उपयोग किया जाता है. Primary Key को परिभाषित करने के लिए आप Comma द्वारा अलग किए गए एक से अधिक Column का उपयोग कर सकते है.
MySQL> Prompt से एक MySQL Table बनाना आसान है आप एक Table को बनाने के लिए SQL Command Table का उपयोग करेंगे.
यहाँ पर एक उदाहरण है जो tutorials_tbl को Create करेगा.
root@host# mysql -u root -p
Enter password:*********
mysql> use TUTORIALS;
Database changed
mysql> CREATE TABLE tutorials_tbl(
-> tutorial_id INT NOT NULL AUTO_INCREMENT,
-> tutorial_title VARCHAR(100) NOT NULL,
-> tutorial_author VARCHAR(40) NOT NULL,
-> submission_date DATE,
-> PRIMARY KEY ( tutorial_id )
-> );
Query OK, 0 rows affected (0.16 sec)
mysql>
किसी मौजूदा Database मे New Table को बनाने के लिए आपको PHP Function mysql_query () का उपयोग करना होगा आप Table को बनाने के लिए एक उचित SQL Command के साथ अपनी दूसरी Argument को Pass करेंगे.
<!DOCTYPE html>
<html>
<head>
<title>Creating MySQL Tables Example</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully<br />';
$sql = "CREATE TABLE tutorials_tbl( ".
"tutorial_id INT NOT NULL AUTO_INCREMENT, ".
"tutorial_title VARCHAR(100) NOT NULL, ".
"tutorial_author VARCHAR(40) NOT NULL, ".
"submission_date DATE, ".
"PRIMARY KEY ( tutorial_id )); ";
mysql_select_db( 'TUTORIALS' );
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not create table: ' . mysql_error());
}
echo "Table created successfully\n";
mysql_close($conn);
?>
</body>
</html>
MySQL DROP TABLE Statement आपको MySQL Database से एक Table को Remove और Delete की अनुमति देता है.
DROP TABLE table_name;
हालांकि MySQL DROP TABLE Statement के लिए Full Syntax है.
DROP [ TEMPORARY ] TABLE [ IF EXISTS ]
table_name1, table_name2, ...
[ RESTRICT | CASCADE ];
TEMPORARY − यह Specifies करता है कि केवल Temporary Tables को DROP TABLE Statement द्वारा छोड़ा जाना चाहिए.
table_name − Database से Table को Remove करने के लिये Table का नाम देना होता है.
table_name1, table_name2 − Database से Table को Remove करने के लिये Tables, से DROP TABLE Statement में एक से अधिक Table को Remove करते है.
IF EXISTS − यदि specifies किया गया है DROP TABLE Statement का कोई Existence मौजूद नहीं है तो Error Tables नहीं होगी.
RESTRICT − इससे DROP TABLE Statement पर कोई प्रभाव नहीं है, लेकिन Syntax में शामिल है ताकि Tables को अलग-अलग Database मे आसान बना दिया जा सके.
इस Example मे आप देखेंगे की कैसे एक TABLE DROP करने के लिए MySQL DROP TABLE Statement का उपयोग करते है.
सबसे पहले, आइए एक सरल DROP TABLE का उदाहरण देखेंगे जो कि MySQL मे एक TABLE को DROP करने के लिए DROP TABLE Statement का उपयोग कैसे करता है.
DROP TABLE customers;
यह DROP TABLE Called Customers को Table से हटा देगा.
आइए एक उदाहरण को देखें जहां हम DROP TABLE Statement का उपयोग करते हुए एक से अधिक TABLE DROP करना चाहते है.
DROP TABLE customers, suppliers;
Data को एक MySQL Table में Insert करने के लिए आपको SQL INSERT INTO Command का उपयोग करना होगा. आप mysql> Prompt या PHP जैसे किसी भी Script का उपयोग करके Data को MySQL Table में INSERT कर सकते है.
MySQL Table मे Data को INSERT करने के लिए यहां पर आप एक सामान्य SQL Syntax देख सकते है.
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
String Data Types को Insert करने के लिए सभी Values को Single या Double Quotes में रखना आवश्यक होता है.
Command Prompt से Data को Insert करने के लिए हम SQL INSERT मे Command का उपयोग MySQL Table tutorials_tbl मे Data को Insert के लिए करेंगे.
root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> INSERT INTO tutorials_tbl
->(tutorial_title, tutorial_author, submission_date)
->VALUES
->("Learn PHP", "Ali Ammu", NOW());
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO tutorials_tbl
->(tutorial_title, tutorial_author, submission_date)
->VALUES
->("Learn MySQL", "Ali S", NOW());
Query OK, 1 row affected (0.01 sec)
mysql> INSERT INTO tutorials_tbl
->(tutorial_title, tutorial_author, submission_date)
->VALUES
->("JAVA Tutorial", "Ammu", '2007-05-06');
Query OK, 1 row affected (0.01 sec)
mysql>
आप MySQL Table मे Data को Insert करने के लिए PHP function mysql_query () मे SQL INSERT का उपयोग कर सकते है.
<!DOCTYPE html>
<html>
<head>
<title>Add New Record in MySQL Database Example</title>
</head>
<body>
<?php
if(isset($_POST['add'])) {
$dbhost = 'localhost:3036';
$dbuser = 'Troot';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
if(! get_magic_quotes_gpc() ) {
$tutorial_title = addslashes ($_POST['tutorial_title']);
$tutorial_author = addslashes ($_POST['tutorial_author']);
} else {
$tutorial_title = $_POST['tutorial_title'];
$tutorial_author = $_POST['tutorial_author'];
}
$submission_date = $_POST['submission_date'];
$sql = "INSERT INTO tutorials_tbl ".
"(tutorial_title,tutorial_author, submission_date) "."VALUES ".
"('$tutorial_title','$tutorial_author','$submission_date')";
mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
} else {
?>
<form method = "post" action = "<?php $_PHP_SELF ?>">
<table width = "600" border = "0" cellspacing = "1" cellpadding = "2">
<tr>
<td width = "250">Tutorial Title</td>
<td>
<input name = "tutorial_title" type = "text" id = "tutorial_title">
</td>
</tr>
<tr>
<td width = "250">Tutorial Author</td>
<td>
<input name = "tutorial_author" type = "text" id = "tutorial_author">
</td>
</tr>
<tr>
<td width = "250">Submission Date [ yyyy-mm-dd ]</td>
<td>
<input name = "submission_date" type = "text" id = "submission_date">
</td>
</tr>
<tr>
<td width = "250"> </td>
<td> </td>
</tr>
<tr>
<td width = "250"> </td>
<td>
<input name = "add" type = "submit" id = "add" value = "Add Tutorial">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
Data को Insert करते समय यह जांचने के लिए कि function get_magic_quotes_gpc () का उपयोग करना सबसे अच्छा है यह देखने के लिए कि क्या Magic Quote के लिए मौजूदा Configuration Set है या नहीं.
यदि यह Function Returns Value False देता है, तो Quotes से पहले Slashes को Add करने के लिए Function Addslashes () का उपयोग करे.
SQL SELECT Command MySQL Database से Data को प्राप्त करने के लिए उपयोग किया जाता है. आप इस Command को mysql> Prompt और PHP जैसी किसी भी Script पर उपयोग कर सकते है.
SELECT field1, field2,...fieldN
FROM table_name1, table_name2...
[WHERE Clause]
[OFFSET M ][LIMIT N]
आप WHERE Clause का उपयोग करते हुए विभिन्न स्थितियों को शामिल करने के लिए Comma द्वारा अलग किए गए एक या एक से अधिक Tables का उपयोग कर सकते है. लेकिन WHERE Clause SELECT Command का एक वैकल्पिक हिस्सा है.
आप Single SELECT Command मे एक या अधिक Fields को प्राप्त कर सकते है.
आप WHERE Clause का उपयोग करके किसी भी Condition को Specify कर सकते है.
आप Fields के स्थान पर star (*) को Specify कर सकते है और इस Situation मे SELECT सभी Fields को Return करेगा.
आप OFFSSET का उपयोग करके Offset को Specify कर सकते है जहां से SELECT Records को लौटना शुरू कर देगा और Default रूप से OFFSSET Zero से शुरू होता है.
MySQL Table tutorials_tbl से Data को प्राप्त करने के लिए SQL SELECT Command का उपयोग करेगा.
root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
| 1 | Learn PHP | Abdul Ali | 2006-05-22 |
| 2 | Learn MySQL | Ammu | 2008-05-28 |
| 3 | JAVA Tutorial | Begum | 2007-05-21 |
+-------------+----------------+-----------------+-----------------+
3 rows in set (0.01 sec)
mysql>
आप एक ही SQL SELECT Command का उपयोग करके एक PHP Function मे mysql_query () कर सकते है. इस Function का उपयोग SQL Command को Execute करने के लिए किया जाता है और उसके बाद बाद मे एक और PHP Function mysql_fetch_array () का उपयोग सभी SELECT Data को प्राप्त करने के लिए किया जा सकता है. यह Function Row को एक Associative Array को एक Numeric Array या दोनो के रूप में देता है. यदि कोई और Rows नहीं हैं तो यह Function गलत हो जाता है.
नीचे एक सरल उदाहरण है जो tutorials_tbl Table से Records को Fetch Display करने का तरीका दिखाएगा.
<?php
$dbhost = 'localhost:2036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
FROM tutorials_tbl';
mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
echo "Tutorial ID :{$row['tutorial_id']} <br> ".
"Title: {$row['tutorial_title']} <br> ".
"Author: {$row['tutorial_author']} <br> ".
"Submission Date : {$row['submission_date']} <br> ".
"--------------------------------<br>";
}
echo "Fetched data successfully\n";
mysql_close($conn);
?>
इसमे Rows के Content को Variable $row को Assigned किया गया है और उस Rows की Values को Print किए जाता हैं.
उपरोक्त उदाहरण मे निरंतर MYSQL_ASSOC को PHP Function mysql_fetch_array () मे दूसरी Argument के रूप में उपयोग किया जाता है ताकि वह Row को एक Associative Array के रूप मे देता है और एक Associative Array के साथ आप Index का उपयोग करने के बजाय उनके नाम का उपयोग करके Field का उपयोग कर सकते है.
PHP mysql_fetch_assoc () नामक अन्य Function प्रदान करता है जो Row को एक Associative Array के रूप मे देता है.
<?php
$dbhost = 'localhost:2036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
FROM tutorials_tbl';
mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_assoc($retval)) {
echo "Tutorial ID :{$row['tutorial_id']} <br> ".
"Title: {$row['tutorial_title']} <br> ".
"Author: {$row['tutorial_author']} <br> ".
"Submission Date : {$row['submission_date']} <br> ".
"--------------------------------<br>";
}
echo "Fetched data successfully\n";
mysql_close($conn);
?>
आप निरंतर MYSQL_NUM को PHP Function mysql_fetch_array () मे दूसरी Argument के रूप मे उपयोग कर सकते है इससे Function को Numeric Index के साथ एक Array को वापस करना होगा.
<?php
$dbhost = 'localhost:2036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
FROM tutorials_tbl';
mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
echo "Tutorial ID :{$row[0]} <br> ".
"Title: {$row[1]} <br> ".
"Author: {$row[2]} <br> ".
"Submission Date : {$row[3]} <br> ".
"--------------------------------<br>";
}
echo "Fetched data successfully\n";
mysql_close($conn);
?>
प्रत्येक SELECT Statement के अंत मे Cursor Memory को रिलीज करने के लिए यह एक अच्छा अभ्यास है यह PHP Function mysql_free_result () का उपयोग करके किया जा सकता है.
<?php
$dbhost = 'localhost:2036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT tutorial_id, tutorial_title, tutorial_author, submission_date
FROM tutorials_tbl';
mysql_select_db('TUTORIALS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
echo "Tutorial ID :{$row[0]} <br> ".
"Title: {$row[1]} <br> ".
"Author: {$row[2]} <br> ".
"Submission Date : {$row[3]} <br> ".
"--------------------------------<br>";
}
mysql_free_result($retval);
echo "Fetched data successfully\n";
mysql_close($conn);
?>
Data का आदान-प्रदान करते समय आप जितना चाहें उतना Complex Code लिख सकते हैं लेकिन उपरोक्त उल्लिखित प्रक्रिया एक समान होगी.