わかりましたので、mysql テーブルにデータを挿入するための php スクリプトがあります。次のようになります。
<?php
$connect = mysql_connect('localhost','my_username','my_pass');
if (!$connect) {die('Could not connect to MySQL: ' . mysql_error());}
$cid =mysql_select_db('geolocation',$connect);
// supply your database name
define('CSV_PATH','/var/www/geolocation/');
// path where your CSV file is located
$csv_file = CSV_PATH . "new_Location.csv"; // Name of your CSV file
$csvfile = fopen($csv_file, 'r');
$theData = fgets($csvfile);
$i = 0;
$k = 0;
while (!feof($csvfile)) {
$csv_data[] = fgets($csvfile, 1024);
$csv_array = explode(",", $csv_data[$i]);
$insert_csv = array();
if(isset($csv_array[0]) && isset($csv_array[1]) && isset($csv_array[2]) && isset($csv_array[3]) && isset($csv_array[4]) && isset($csv_array[5]) && isset($csv_array[6]) && isset($csv_array[7]) && isset($csv_array[8])){
$insert_csv['ID'] = $csv_array[0];
$insert_csv['country'] = $csv_array[1];
$insert_csv['region'] = $csv_array[2];
$insert_csv['city'] = $csv_array[3];
$insert_csv['postalCode'] = $csv_array[4];
$insert_csv['latitude'] = $csv_array[5];
$insert_csv['longitude'] = $csv_array[6];
$insert_csv['other'] = $csv_array[7];
$insert_csv['another'] = $csv_array[8];
$query = "INSERT INTO City (locId, country, region, city, postalCode, latitude, longitude) VALUES('".$insert_csv['ID']."','".$insert_csv['country']."','".$insert_csv['region']."','". $insert_csv['city']."','".$insert_csv['postalCode']."','".$insert_csv['latitude'].",,'".$in sert_csv['longitude']."'')";
$n=mysql_query($query, $connect );
$i++;
}
if($k==1000){
echo $i . " \n";
$k = 0;
}
$k++;
}
fclose($csvfile);
echo "File data successfully imported to database!!";
mysql_close($connect);
?>
今、スクリプトを実行すると、すべてが正常に動作しているようecho $i
に見え、時々エラーが発生せずにスクリプトが終了しますが、(phpmyadmin を介して) mysql を調べると、追加された行が表示されません。テーブル...私は過去にこのスクリプトの別の修正バージョンも使用しましたが、完全に機能しました(遅いことを除いて)。ただし、mysqlに関してはまだかなりグリーンで、何が起こっているのか理解できないようです上...これが私のテーブルフォーマットです
locId --> int(11)
country --> varchar(2)
region --> varchar(2)
city --> varchar(50)
postalCode --> varchar(8)
latitude --> varchar(10)
longitude --> varchar(10)
また、csv ファイルのサンプル:
46,CK,NA,NA,NA,-21.2333,-159.7667,NA,NA
なぜこれが機能しないのか、またはデバッグをどのように行うことができるのかについての助けをいただければ幸いです。
また、注意してください(テーブルのcsvに最後に値を入れたくない)ので、意図的にinsertステートメントから省略されています