使用PHP将数据库查询结果写入文本文件

时间:2016-10-04 22:07:06

标签: php sql wordpress

我有一些代码,我写的是在我的wordpress网站的帖子表中提取附件。

第一个函数会拉下结果,但我无法将其写入文本文件。

创建文件很好,我没有错误。代码正在运行,我只是没有得到日志。我想知道它准备移动的文件。

这是我的插件中的有问题的功能

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);
}

我错过了什么?

编辑 - 我订单错了。以下是正确的。但显然我不是从我的回归中获取数据。我需要把它变成一个数组吗?

新代码

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;

}

1 个答案:

答案 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
}