2016-10-04 2 views
1

내 워드 프레스 사이트의 내 게시물 테이블에서 첨부 파일을 가져 오기 위해 작성한 코드가 있습니다.PHP로 텍스트 파일에 데이터베이스 쿼리 결과 쓰기

첫 번째 함수는 결과를 가져 오지만 텍스트 파일에 쓸 수는 없습니다.

파일을 만들면 문제가 없으며 오류가 발생하지 않습니다. 그리고 코드가 작동 중입니다. 로그가 표시되지 않습니다. 나는 그것이 움직일 준비가되어있는 파일을 알고 싶다.

이 내가 놓친 게 무엇 내 플러그인

function getPostsToMove($baseurl){ 

    $baseurl = $baseurl.'/%/%/%.%'; 
    $myfile = fopen("/websites/site.dev/wp-content/uploads/newfile.txt", "w") or die("Unable to open file!"); 

    global $wpdb ; 

    return $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE `guid` not 
    like '$baseurl' and `post_type` = 'attachment' ORDER BY post_date DESC LIMIT 1000"); 

    fwrite($myfile, $baseurl); 
    fclose($myfile); 
} 

에서 문제의 기능은 무엇입니까?

EDIT- 순서가 잘못되었습니다. 아래의 내용이 옳았습니다. 하지만 분명히 내 수익에서 데이터를 가져 오지 않을거야. 이를 배열로 변환해야합니까?

새로운 코드 함수가 파일에 쓰기를 시도 후에 쿼리를 검색하는 것으로 나타납니다

function getPostsToMove($baseurl){ 

$baseurl = $baseurl.'/%/%/%.%'; 
    $myfile = fopen("/websites/site.dev/wp-content/uploads/newfile.txt", "w") or die("Unable to open file!"); 

    fwrite($myfile, $output); 
    fclose($myfile); 
    global $wpdb; 
    $output = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE `guid` not 

like '$baseurl' and `post_type` = 'attachment' ORDER BY post_date DESC LIMIT 1000"); 

return $output; 

} 
+3

'return'은 return을 의미합니다. 'return'뒤에 아무 것도 실행되지 않습니다. – Zimmi

+0

예, 함수의 마지막에'return'을 시도해보십시오. – fugitive

+0

이것은 이동할 파일을 모으는 첫 번째 함수 일뿐입니다. 쿼리가 발생하기 전에 파일을 작성하고 닫는 방법은 무엇입니까? –

답변

2

.

데이터를 검색하여 파일에 기록한 다음 나중에 응용 프로그램에서 사용할 수 있도록 데이터를 반환하려는 경우 다음과 같이 제안합니다.

function getPostsToMove($baseurl){ 
    $baseurl = $baseurl.'/%/%/%.%'; 
    $myfile = fopen("/websites/site.dev/wp-content/uploads/newfile.txt", "w") or die("Unable to open file!"); 

    // Query the data and assign the variable before writing 
    global $wpdb; 
    $results = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE `guid` not like '$baseurl' and `post_type` = 'attachment' ORDER BY post_date DESC LIMIT 1000"); 

    // json_encode() to turn the retrieved array into a JSON string for writing to text file 
    $output = json_encode($results); 

    // write the file 
    fwrite($myfile, $output); 
    fclose($myfile); 

    // return the result (array) for further use in application 
    return $results 
} 
+1

json_encode()는 배열에서 텍스트 파일에 쓰기를 수행하는 한 가지 방법입니다. 물론 정보를 더 읽기 쉬운 방식으로 분석하고 그에 따라 작성할 수 있습니다. 하지만이 질문의 범위를 벗어납니다 – Luke

+0

감사합니다!. 그것이 내가 놓친 것입니다. 실제 파싱 및 출력. 해당 주제에 대한 링크 또는 리소스가있는 경우 더 나은 방법을 배우고 싶습니다. 미래를 아는 것이 좋을 것입니다. –

+0

[this] (http://www.webdeveloper.com/forum/showthread.php?235140-Formatting-a-line-ready-string- (json) -into-human-readable-format)과 같은 것은 어레이를 '사람이 읽을 수있는'형식으로 변환하는 방법을 깊이 파고 드는 훌륭한 자료입니다. – Luke