我写了第一个 PHP 脚本将csv文件导入数据库,对待并将其导出再次进入另一个csv文件。
问题是即使我可以在phpMyAdmin中检查de数据库并且“Type”列确实存在,但当我运行脚本时它会说
错误:“字段列表”
中的未知列“类型”因为它实际上没有创建列。我真的不明白那里发生了什么,我希望有人可以给我一些启示。我知道我的代码不是很好,而且可以用更简单的方式完成,但是一旦我的代码真正起作用,我将为下一步进行优化:P
它包含两个部分:import& treat:
<?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!";
?>
非常感谢你的帮助。