0

csv ファイルをデータベースにインポートし、それを処理し、別の csv ファイルに再度エクスポートする最初のPHPスクリプトを作成しました。

問題は、phpMyAdminでデータベースを確認でき、「タイプ」列が存在するにもかかわらず、スクリプトを実行すると、

エラー: 「フィールド リスト」の不明な列「タイプ」

実際には列を作成しなかったためです。そこで何が起こっているのか本当に理解できません。誰かが私に光を当ててくれることを願っています。私のコードはあまり良くなく、もっと簡単な方法で実行できることはわかっていますが、コードが実際に機能したら、次のステップの最適化を行います :P

インポートと処理の 2 つの部分があります。

<?php 

header('Access-Control-Allow-Origin: *'); 
$sep = ","; 
$fp = fopen('./test.csv', 'w+');     
$servidor="localhost"; $usuario="root";     
$contrasena="";     
$db=mysqli_connect($servidor,$usuario,$contrasena); 
$Type="a"; mysqli_select_db($db, "test");

$sql="DROP TABLE test;"; 
$sql.="CREATE TABLE test (Country varchar(55), Code varchar(55), Rate varchar(55), Currency varchar(55), Indicator varchar(55), EffectiveDate varchar(55));"; 
$sql.="LOAD DATA LOCAL INFILE 'http://localhost/test2.csv' INTO TABLE test FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' ignore 1 lines;"; 
$sql.="ALTER TABLE test ADD Type VARCHAR(55) NULL;";

if (mysqli_multi_query($db,$sql)) {  
do   {   }  
while (mysqli_next_result($db)); }

mysqli_close($db);

そして、私の知識があまり良くなかったので、私が別々に行う輸出。

$db2=mysqli_connect($servidor,$usuario,$contrasena);
mysqli_select_db($db2, "test");
$sql1="SELECT Country, Code, Rate, EffectiveDate, Type FROM test LIMIT 100;";
$datos1=mysqli_query($db2, $sql1)
    or die ("Error: ".mysqli_error($db2));

while($datos2 = mysqli_fetch_array($datos1)) {
$linea = $datos2['Country'].$sep.$datos2['Code'].$sep.$datos2['Rate'].$sep.$datos2['EffectiveDate'].$sep.$datos2['Type'].$sep;
fwrite($fp,$linea);
}
fclose($fp);

mysqli_close($db2);

echo "GOOD JOB!";
?>

ご助力ありがとうございます。

4

0 に答える 0