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!";
?>
ご助力ありがとうございます。