繁体   English   中英

使用wpdb数据库将数据导出到CSV

[英]Export data to csv using wpdb database

我想在csv中导出sql表的数据。 我正在使用以下代码:

<?php
if(isset($_POST['export']))
{
          $file = 'email_csv'; // ?? not defined in original code
          $results = $wpdb->get_results("SELECT * FROM `scholarship_uesr`;",ARRAY_A);

          if (empty($results)) {
            return;
          }

          $csv_output = '"'.implode('";"',array_keys($results[0])).'";'."\n";;

          foreach ($results as $row) {
            $csv_output .= '"'.implode('";"',$row).'";'."\n";
          }
          $csv_output .= "\n";
          $dir = "/home/modifoun/public_html/wp-content/plugins/schloarship/menu-pages/csv/";
          $filename = $file."_".date("Y-m-d_H-i",time()).".csv";

          header("Content-type: application/vnd.ms-excel");
          header("Content-disposition: csv" . date("Y-m-d") . ".csv");
          header( "Content-disposition: filename=".$filename.".csv");
          print $csv_output;
          exit;
        //  echo "<div class='alert alert-info'>Data Written to CSV File. <a href='".$geturl."' download>Click Here to Download</a></div>";
}
$allsubs = "SELECT * FROM `scholarship_uesr`";
$select_query = $wpdb->get_results($allsubs);
//echo $wpdb->last_error;
?>
<form method="post" action="#" enctype="multipart/form-data">
<input type="submit" name="export" class='btn btn-danger' value="Export Data to CSV !!!">
</form>

当我使用此代码时,它将直接打印数据库的数据,而不是下载文件。

当我打开error_reporting它会抛出错误:

Warning: Cannot modify header information - headers already sent by (output started at /home/modifoun/public_html/wp-admin/includes/template.php:2041) in /home/modifoun/public_html/wp-content/plugins/schloarship/menu-pages/student_list.php on line 45

Warning: Cannot modify header information - headers already sent by (output started at /home/modifoun/public_html/wp-admin/includes/template.php:2041) in /home/modifoun/public_html/wp-content/plugins/schloarship/menu-pages/student_list.php on line 46

Warning: Cannot modify header information - headers already sent by (output started at /home/modifoun/public_html/wp-admin/includes/template.php:2041) in /home/modifoun/public_html/wp-content/plugins/schloarship/menu-pages/student_list.php on line 47

如何使用Wordpress将数据导出到CSV

您需要在开始输出之前运行此程序。 看起来您的模板文件中有这个吗?

尝试将其添加到您的functions.php文件中。

add_action('init', 'exportCsv');
function exportCsv() {
  if(isset($_POST['export']))
  {
            $file = 'email_csv'; // ?? not defined in original code
            $results = $wpdb->get_results("SELECT * FROM `scholarship_uesr`;",ARRAY_A);

            if (empty($results)) {
              return;
            }

            $csv_output = '"'.implode('";"',array_keys($results[0])).'";'."\n";;

            foreach ($results as $row) {
              $csv_output .= '"'.implode('";"',$row).'";'."\n";
            }
            $csv_output .= "\n";
            $dir = "/home/modifoun/public_html/wp-content/plugins/schloarship/menu-pages/csv/";
            $filename = $file."_".date("Y-m-d_H-i",time()).".csv";

            header("Content-type: application/vnd.ms-excel");
            header("Content-disposition: csv" . date("Y-m-d") . ".csv");
            header( "Content-disposition: filename=".$filename.".csv");
            print $csv_output;
            exit;
          //  echo "<div class='alert alert-info'>Data Written to CSV File. <a href='".$geturl."' download>Click Here to Download</a></div>";
  }
}

唯一需要的是ob_start()和ob_end_clean()

在if(isset($ _ POST ['export']))之后,使用ob_start(),在此if语句的右括号之前,使用ob_end_clean()。

使用以下标题

header('内容描述:文件传输');

header(“ Content-Type:application / csv”);

标头(“内容处置:附件;文件名= Report.csv”);

header(“ Pragma:no-cache”);

header(“ Expires:0”);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM