データベースのテーブルに挿入する必要があるプレーン テキストの非常に長いリストがあります。プレーン テキスト ドキュメントの各行を手動で入力する必要がありますか? または、クエリを使用してテーブル内の独立した行に長いリストを挿入する方法はありますか?
id と club_name の 2 つの列を持つテーブルがあります。club_name は、メモ帳ドキュメントのプレーン テキストのリストです。
データベースのテーブルに挿入する必要があるプレーン テキストの非常に長いリストがあります。プレーン テキスト ドキュメントの各行を手動で入力する必要がありますか? または、クエリを使用してテーブル内の独立した行に長いリストを挿入する方法はありますか?
id と club_name の 2 つの列を持つテーブルがあります。club_name は、メモ帳ドキュメントのプレーン テキストのリストです。
$file = file("content.txt"); //read file line by line
foreach ($file as $val) {
if (trim($val) != '') { //ignore empty lines
mysql_query("INSERT INTO xxx SET club='" . $val . "'");
}
}
php、mysqli、および各エントリが 1 行にあるテキスト ファイルを使用してこれを行う方法を次に示します。
<?php
$servername = "localhost";
$username = "user";
$password = "pass";
$dbname = "db";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$file = file("list.txt"); //read file line by line
foreach ($file as $val) {
if (trim($val) != '') { //ignore empty lines
$sql = "INSERT INTO `db`.`table` (`column`) VALUES ('$val');";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
}
?>
これは DanFromGermany の回答に基づいていますが、mysqli を使用するように更新されています。
PDOベースの簡単な例を次に示しますが、ソース データを操作する必要がない場合 (トリム、正規化など)、MySQL のLOAD DATA INFILEコマンドの方がはるかに優れたオプションです。
<?php
$conn = new PDO($dsn, $username, $password);
$stmt = $conn->prepare('INSERT INTO table VALUES (NULL, ?)');
foreach(file('list.txt') as $club) {
$stmt->execute(array($club));
}
アンソニー。
メモ帳の内容全体を「テキスト」タイプの列に挿入します