आप जिस चीज की तलाश कर रहे हैं, वह है MySQL का बिल्ट-इन फंक्शन LOAD DATA INFILE
डेटाबेस के लिए मान वाली टेक्स्ट फ़ाइल को डेटाबेस में लोड करने के लिए।
उदाहरण:
LOAD DATA INFILE 'data.txt' INTO TABLE my_table;
आप अपनी टेक्स्ट-फाइल के अंदर डिलीमीटर भी निर्दिष्ट कर सकते हैं, जैसे:
LOAD DATA INFILE 'data.txt' INTO TABLE my_table FIELDS TERMINATED BY '|';
अपडेट करें:
यहां एक पूर्ण-कार्यशील उदाहरण है, मैंने एक परीक्षण डेटा फ़ाइल यहां अपलोड की है। और यहाँ मेरा PHP कोड है।
$string = file_get_contents("http://www.angelfire.com/ri2/DMX/data.txt", "r");
$myFile = "C:/path/to/myFile.txt";
$fh = fopen($myFile, 'w') or die("Could not open: " . mysql_error());
fwrite($fh, $string);
fclose($fh);
$sql = mysql_connect("localhost", "root", "password");
if (!$sql) {
die("Could not connect: " . mysql_error());
}
mysql_select_db("my_database");
$result = mysql_query("LOAD DATA INFILE '$myFile'" .
" INTO TABLE test FIELDS TERMINATED BY '|'");
if (!$result) {
die("Could not load. " . mysql_error());
}
मेरे PHP कोड को चलाने से पहले तालिका ने क्या देखा:
mysql> select * from test;
+--------+-----------+------------+
| DataID | Name | DOB |
+--------+-----------+------------+
| 145 | Joe Blogs | 17/03/1954 |
+--------+-----------+------------+
1 row in set (0.00 sec)
और इसके बाद का परिणाम है:
mysql> select * from test;
+--------+-------------+------------+
| DataID | Name | DOB |
+--------+-------------+------------+
| 145 | Joe Blogs | 17/03/1954 |
| 234 | Carl Jones | 01/01/1925 |
| 98 | James Smith | 12/09/1998 |
| 234 | Paul Jones | 19/07/1923 |
| 986 | Jim Smith | 12/01/1976 |
+--------+-------------+------------+
5 rows in set (0.00 sec)