1行の\t
データを含むtxtファイルがあり、ファイル内のデータはループを介して更新され、最後にこのループでテーブルに配置されます。私が扱っている現在のデータには24列と25行があり、最初の値が同じ2行を除いてすべて問題なく入力されます。これらの 1 つだけが入力されます。
主キーまたは一意の値が有効になっているものは何も設定していませんが、最初の値が同じ行に入力されず、値 3、4、および 5 もすべて同じです。
コード全体は次のとおりです。
<?php
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('amazondb', $conn);
mysql_query ("TRUNCATE TABLE imported_orders");
$lines = file('F:/xamptest/htdocs/UniProject/upload/Amazon output.txt');
$lineCount = count($lines);
for ($arrayCounter=0; $lineCount>$arrayCounter; $arrayCounter++)
{
$lineEx = explode("\t", $lines[$arrayCounter]);
$lineEx[2] = substr($lineEx[2], 0, -15);
$lineEx[3] = substr($lineEx[3], 0, -15);
$lineEx[4] = substr($lineEx[4], 0, -15);
$lineEx[5] = substr($lineEx[5], 0, -15);
$arri = implode("\t",$lineEx);
file_put_contents('upload/ImportLine.txt', $arri);
$r = mysql_query ("LOAD DATA INFILE 'F:/xamptest/htdocs/UniProject/upload/ImportLine.txt' INTO TABLE imported_orders FIELDS TERMINATED BY '\t'", $conn);
echo "Array Counter Loop: ".$arrayCounter." Order ID: ".$lineEx[0]."<br>";
}
echo "<br>WLoop has ran: ".$arrayCounter." Times";
?>
ループのみを使用し、それ自体で単一行ファイルを使用しても、1行追加するだけで、最初の列をPK自動インクリメントとして追加しようとしましたが、想定どおりに機能せず、最初の値を入力しようとしましたその中のファイル -.-'
機能しない明確な理由がないため、これは何日も困惑していました。理想的には、内INSERT
破された配列値を直接、今のように値を定義したいと思い\t
ますが、検索したものからはできないようです。
編集: 値 1 と 2 を複合主キーにし、機能しましたが、機能しません。6回目の実行で、再び24行しか入力されません-.-'
php と sql の経験が明らかに不足していて申し訳ありません。
助けてくれてありがとう。