2014-12-17 3 views
0

TXT에서 정보를 가져 와서 데이터베이스에 삽입하고 싶습니다.SQL에 PHP txt 파일

첫 번째 줄을 두 개의 빈 줄로 읽는 루프를 만들고 싶습니다. 각 줄 루프는 독립 매개 변수입니다.

첫 번째 줄/줄이 "이름"매개 변수 인 경우 두 번째 줄은 길거리 매개 변수이고 세 번째 줄은 도시 매개 변수이고 나머지 줄의 나머지는 텍스트 매개 변수입니다.

모든 루프가 해당 줄 수와 같지 않고 각 루프를 구분하는 것이 빈 줄 2 개라는 점에 유의해야합니다.

<?php 

$file = file('try1.txt'); 

for ($i = 0; $i < count($file); $i++) { 

    $sql = "INSERT INTO `table` (`name`,`street`,`city`,`text`) VALUES ('$name','$street','$city','$text')"; 
     mysql_query($sql); 
} 
?> 

파일 : try1.txt

+0

mysql 함수를 사용하고 있다면 왜'pdo''mysqli'로 질문을 감추었습니까? 어쨌든, 그렇게하지 마십시오. 사용되지 않습니다. – vaso123

+0

@ lolka_bolka 당신은 자신에게 대답했습니다. 나는 또한 PDO와 MYSQLI를 사용할 것입니다. – TheQuestionerMan

+0

내부의 tabulators 만 바꾸면됩니다. – vaso123

답변

1

당신이 원하는 마십시오 쿼리를, 전자 상응하는 열이있는 데이터베이스를 가지고, 키 배열로 파일 저장을 읽는 스크립트를 만들기 이 같은?

$content = "Name 
Street 
City 
This 
is 
some 
text 


Name2 
Street2 
City2 
Something 
else 
string"; 

//$content = file_get_contents("try1.txt"); 
//$link = mysqli_connect("localhost", "dbuser", "dbpass", "dbname"); 
$string = str_replace("\r", '', $content); 
$blocks = explode("\n\n\n", $string); 
foreach ($blocks as $block) { 
    $lines = explode("\n", $block); 
    $name = $city = $street = $text = ""; 
    if (!empty($lines[0])) { 
     $name = $lines[0]; 
    } 
    if (!empty($lines[1])) { 
     $street = $lines[1]; 
    } 
    if (!empty($lines[2])) { 
     $city = $lines[2]; 
    } 
    if (!empty($lines[3])) { 
     for ($i=3; $i < count($lines); $i++) { 
      $text .= " " . $lines[$i]; 
     } 
     $text = ltrim($text," "); 
    } 
    var_dump ($name); 
    var_dump ($street); 
    var_dump ($city); 
    var_dump ($text); 
    echo '----------------------------'."<br />"; 
    /* 
    $sql = "INSERT INTO `table` (`name`, `street`, `city`, `text`)" 
     . " VALUES ('".mysqli_real_escape_string($link, $name)."'," 
     . "'".mysqli_real_escape_string($link, $street)."'," 
     . "'".mysqli_real_escape_string($link, $city)."'," 
     . "'".mysqli_real_escape_string($link, $text)."')"; 
    mysqli_query($link, $sql); 
    * 
    */ 
} 

출력

string 'Name' (length=4) 
string 'Street' (length=6) 
string 'City' (length=4) 
string 'This is some text' (length=17) 
---------------------------- 
string 'Name2' (length=5) 
string 'Street2' (length=7) 
string 'City2' (length=5) 
string 'Something else string' (length=21) 
---------------------------- 

주 :
그래서 당신이해야 할 일 :

  • file_get_contents는 해당 행을의 $content를 제거하고 주석을 해제.

  • $link 행의 주석 처리를 제거하고 연결 매개 변수를 설정하십시오.

  • var_dumps 및 echo "-----" 줄을 제거하십시오.

  • 나머지는 주석 처리를 제거하십시오.

    이 예에서

, 나는 그들에게 OOP 스타일을 사용하는 방법 PDO 또는 mysqli에 대한 문서를 확인, 절차 적 스타일로 mysqli을 사용했습니다.

+0

그것은 나를 위해 잘 작동하지 않습니다. parameter.i는 UTF-8 (히브리어에서 영어 텍스트로 번역 되었기 때문에)은 실제 텍스트가 히브리어로 있기 때문에 생각합니다. -> txt 파일에 활성 링크를 추가했습니다. – TheQuestionerMan

+0

그것은 UTF-8에 관한 것이 아닙니다. 문제는 새로운 라인이 없다는 것입니다. 파일을 열고 첫 줄에 2 줄씩 새 줄에'tab' 문자가 있습니다. – vaso123

+0

파일을 영어로 번역하면 작동합니다. 그래서 UTF-8에 대한 링크가 있다고 말한 것입니다. 원래 txt 파일로 무엇을 할 수 있습니까? – TheQuestionerMan

0

"INSERT INTO your_table VALUES ($data['value1'], $data['value2'])";

+0

나는 어떻게하는지 모른다. 제발 보여줘. – TheQuestionerMan

+0

파일 형식은 무엇입니까 ...? – Tomazi

+0

try1.txt -> UTF-8 – TheQuestionerMan