sql >> Databasteknik >  >> RDS >> Mysql

Läs en textfil och överför innehållet till mysql-databasen

Det du kanske letar efter är MySQL:s inbyggda funktion code>LADDA DATAINFIL för att ladda en textfil som innehåller värden för en databas till en databas.

Exempel:

LOAD DATA INFILE 'data.txt' INTO TABLE my_table;

Du kan också ange avgränsare inuti din textfil, så här:

LOAD DATA INFILE 'data.txt' INTO TABLE my_table FIELDS TERMINATED BY '|';

Uppdatering:

Här är ett fullt fungerande exempel, jag laddade upp en testdatafil här och här är min PHP-kod.

$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());
}

Så här såg tabellen ut innan jag körde min PHP-kod:

mysql> select * from test;
+--------+-----------+------------+
| DataID | Name      | DOB        |
+--------+-----------+------------+
|    145 | Joe Blogs | 17/03/1954 |
+--------+-----------+------------+
1 row in set (0.00 sec)

Och här är resultatet efter:

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)


  1. Kommandoraden för export av Mysql XML-tabell

  2. Konvertera BufferedInputStream till bild

  3. Hur man frågar en CLOB-kolumn i Oracle

  4. Kunskap om att återställa raderade poster i SQL Server