簡體   English   中英

在訪問PHP時從MySQL數據庫中的txt文件導入數據

[英]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的一部分是REPLACEIGNORE選項,該選項確定如果腳本嘗試插入與現有唯一鍵重復的行(如果您的表有此鍵),將發生什么情況。

另外,如果輸入文件中的字段順序與數據庫表中的順序不同,則可以在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM