Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取文件的详细信息,然后插入数据库_Php_Database_File_Csv_Readfile - Fatal编程技术网

Php 获取文件的详细信息,然后插入数据库

Php 获取文件的详细信息,然后插入数据库,php,database,file,csv,readfile,Php,Database,File,Csv,Readfile,我有一个.txt文件,其中以这种格式列出了所有国家/地区的详细信息: Country,City,AccentCity,Region,Population,Latitude,Longitude ad,aixas,Aixàs,06,,42.4833333,1.4666667 ad,aixirivali,Aixirivali,06,,42.4666667,1.5 ad,aixirivall,Aixirivall,06,,42.4666667,1.5 ad,aixirvall,Aixirvall,06,

我有一个.txt文件,其中以这种格式列出了所有国家/地区的详细信息:

Country,City,AccentCity,Region,Population,Latitude,Longitude
ad,aixas,Aixàs,06,,42.4833333,1.4666667
ad,aixirivali,Aixirivali,06,,42.4666667,1.5
ad,aixirivall,Aixirivall,06,,42.4666667,1.5
ad,aixirvall,Aixirvall,06,,42.4666667,1.5
ad,aixovall,Aixovall,06,,42.4666667,1.4833333
ad,andorra,Andorra,07,,42.5,1.5166667
ad,andorra la vella,Andorra la Vella,07,20430,42.5,1.5166667
ad,andorra-vieille,Andorra-Vieille,07,,42.5,1.5166667
ad,andorre,Andorre,07,,42.5,1.5166667
ad,andorre-la-vieille,Andorre-la-Vieille,07,,42.5,1.5166667
ad,andorre-vieille,Andorre-Vieille,07,,42.5,1.5166667
ad,ansalonga,Ansalonga,04,,42.5666667,1.5166667
我必须将这些数据插入3个表中,如城市、州和国家,而无需重复

有没有可能从.txt文件中读取数据并将其插入数据库


如何获取州和城市数据库?

将文件作为CSV读取,然后插入:

if (($handle = fopen("cities.txt", "r")) !== FALSE) {
    while (($data = fgetcsv($handle)) !== FALSE) {
        // Craft your SQL insert statement such as:
        $sql = "INSERT INTO cities (country, city, accent_city, etc.) VALUES ('{$data[0]}','{$data[1]}','{$data[2]}', etc.)";
        // Use the appropriate backend functions depending on your DB, mysql, postgres, etc.
    }
}

如果您的数据库是mysql,则存在一个用于批量插入的实用程序


如果没有,可能您的数据库也有一个,但是如果您想使用PHP执行此操作,@davidethell的示例非常适合执行此任务

您只需读取文件、拆分每行数据、创建INSERT语句。。。完成(?)是否可以插入3个单独的表,如country state citySure,请记住,您的数据集是针对城市的,因此如果每次只插入第一列,您将有重复的国家。编辑您的问题以包含您的表格定义,我可以更新答案以向您展示您可以如何操作。我只需要菲律宾的州和城市,即$data[0]=ph