2014-07-13 3 views
0

현재 웹 URL에서 텍스트 데이터를 가져 와서 배열로 저장하는 PHP 프로그램이 있습니다. 여기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 DB에는 파일에있는 데이터만큼 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. 

이제이 DB에 저장하는 루프를 넣어 다시 쉼표로 당신의 $ 문자열을 폭발해야합니다.

$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

죄송합니다.이 경우에는 필요 없습니다. 조건이 필요한 경우 사용해야합니다. 죄송합니다. –

+0

나는이 코드를 시험해 보았습니다. –

관련 문제