2014-07-13 82 views
0

目前我有一个PHP程序,可以将文本数据从Web URL中获取并将其保存为数组。下面是代码:使用PHP将数组发送到MySql

$handler = fopen('URL', 'r'); 

if ($handler){ 
    while (!feof($handler)){ 
     $line[] = fgets($handler); 
    } 
    fclose($handler);  
} 

这里是阵列的几行外观打印时,如:

9,632,1,44,Xi1esF8,28446,26377421,DK,C,0,0,0,1,0        
9,632,2,320,i am,34977,24706164,EvOsso,C,0,0,0,1,0        
9,632,3,352,Darwins Immaculate Selection,17357,23463949,MONSTERS,D,0,0,0,1,0 

每一行都是$线[0],$线的阵列[1] ,$ line [2]等。

我想把它放到MySQL中,以便每个','后面的每个数据段都是一个新列,每个新行都是MySQL中的一个新行。所以MySQL数据库有14列和行数与文件中的数据一样多。

我不确定如何编写php连接到MySQL数据库,并输入基于“,”分隔符和每个数组($ line [0],$ line [1],$ line [ 2])是MySQL中的新行。

在此先感谢您的帮助!

+0

哪部分你有困难?连接到数据库,还是写入数据? – andrewsi

+0

写入数据。我可以很好地连接,但是告诉它在每个“,”之后将每个数据项放在一个新行中并且每个数组都是新行的语法是什么?所以在数据库中有14列和尽可能多的行。 – Ryansworld84

+0

你需要看'explode'将文件分割成行,然后将每行分割成若干列 - 你可以使用'str_getcsv()'来完成所有的努力http://php.net/manual/ en/function.str-getcsv.php – andrewsi

回答

0

你可以很容易地爆炸和爆炸,最后使用for循环将逗号分隔的每个数据作为不同的行存储到数据库中。

首先你需要把你的数组值的字符串,以便:

$conn=mysql_connect("host_name","user_name","password") or error("Could not connect: ".mysql_error()); 
    mysql_select_db("db_name"); 

    $array=array("something","something","something");//this is the array you have. 
    $string=implode(",",$array); // you need to implode array and store that as string. 

现在你需要用逗号再次引爆你的$字符串把他们在for循环存储到数据库中。

$str=explode(',',$string); 

现在,您只需使用for循环进行查询。

foreach($str as $strs) 
    { 
    $query = "INSERT INTO table_names(id, column_name) 
       VALUES 
       ('', '".$strs."')"; 
    mysql_query($query,$conn); 

    } 
+0

$ i = 0和$ i ++是什么? foreach是否已经遍历每个数组元素? – Ryansworld84

+0

对不起,在这种情况下,你不需要它,只是如果你需要使用,如果条件你需要it.again对不起 –

+0

我试过这段代码,它也适用于你。 –

相关问题