[英]Import data from a txt file in a MySQL database with PHP on visit
我正在使用PHPMyAdmin運行我的MySQL數據庫。
假設我們有一個txt文件“ people.txt”,一個MySQL數據庫和一個PHP頁面,其中顯示了來自數據庫的數據。 假設使用以下語法存儲文本文件中的數據:
2015/16/01|Alex|Paris
2015/13/01|Johnny|Berlin
2015/11/01|Mary|Oslo
您會注意到每個字段都用|分隔。
有什么方法可以使用PHP腳本導入這些數據? 我想向您展示一個不同的腳本,該腳本在訪問頁面時將數據發送到數據庫:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_db";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO `People` (data, name, city)
VALUES ('2015/10/01', 'Will', 'Rome')";
if ($conn->query($sql) === TRUE) {
$last_id = $conn->insert_id;
echo "OK!";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
我想模擬此腳本,以便每次訪問頁面時檢查txt文件。 有什么幫助嗎?
我嘗試合並顯示數據和從txt文件導入數據的PHP腳本,但似乎無法正常工作。
<?php
$con=mysqli_connect("localhost","username","","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed: " . mysqli_connect_error();
}
$sql = "
LOAD DATA INFILE 'people.txt'
INTO TABLE `People`
FIELDS TERMINATED BY '|'
";
$result = mysqli_query($con,"SELECT * FROM `People`");
echo "<table class='people'>
<tr class='titles'>
<th>Data</th>
<th>Name</th>
<th>City</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['Data'] . "</td>";
echo "<td>" . $row['Name'] . "</td>";
echo "<td>" . $row['City'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
使用“ LOAD DATA INFILE”語句可以在每次訪問頁面時將數據加載到表中。
$sql = "
LOAD DATA INFILE 'people.txt'
INTO TABLE `People`
FIELDS TERMINATED BY '|'
";
要查詢的SQL的一部分是REPLACE
或IGNORE
選項,該選項確定如果腳本嘗試插入與現有唯一鍵重復的行(如果您的表有此鍵),將發生什么情況。
另外,如果輸入文件中的字段順序與數據庫表中的順序不同,則可以在SQL末尾提供列列表,例如(data, name, city)
。
除此之外,我認為您應該能夠簡單地將發布的代碼中的$sql
變量替換為上述SQL,然后運行(就像您的原始代碼一樣):
if ($conn->query($sql) === TRUE) {
echo "OK!";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.