2016-02-12 49 views
0

我更新的代码,但数据之前得到一些标签我想作为一个纯粹的CSV输出,但输出HTML标记

<br />            
<font size='1'><table class='xdebug-error xe-warning' dir='ltr' border='1' cellspacing='0' cellpadding='1'>            
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>(!)</span> 

警告:缺少参数2 :: WPDB准备()在第14行调用并在C:\ wamp \ www \ wordpress \ wp-includes \ wp-db.php中定义C:\ wamp \ www \ wordpress \ wp-content \ plugins \ sinetiks-schools \ deped_rpci.php on line

</th></tr>           
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>            
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>            
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0000</td><td bgcolor='#eeeeec' align='right'>312032</td><td bgcolor='#eeeeec'>{main}()</td><td title='C:\wamp\www\wordpress\wp-admin\admin.php' bgcolor='#eeeeec'>..\admin.php<b>:</b>0</td></tr>            
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0010</td><td bgcolor='#eeeeec' align='right'>331856</td><td bgcolor='#eeeeec'>require_once(<font color='#00bb00'>'C:\wamp\www\wordpress\wp-load.php'</font>)</td><td title='C:\wamp\www\wordpress\wp-admin\admin.php' bgcolor='#eeeeec'>..\admin.php<b>:</b>31</td></tr>             

这里的代码

<?php if (isset($_POST['exp'])) { 

$wpdb->show_errors(); 

global $wpdb; 

// Grab any post values you sent with your submit function 
$DownloadReportFrom = "ReportDateFrom"; 
$DownloadReportTo = "ReportDateFrom"; 

// Build your query       
$MyQuery = $wpdb->get_results($wpdb->prepare('SELECT * FROM wp_rpci_rpci')); 


// Process report request 
if (! $MyQuery) { 
    $Error = $wpdb->print_error(); 
    die("The following error was found: $Error"); 
    } else { 
// Prepare our csv download 

// Set header row values 
$csv_fields=array(); 
$csv_fields[] = 'Field Name 1'; 
$csv_fields[] = 'Field Name 2'; 
$csv_fields[] = 'Field Name 1'; 
$csv_fields[] = 'Field Name 2'; 
$csv_fields[] = 'Field Name 1'; 
$csv_fields[] = 'Field Name 2'; 
$output_filename = 'MyReport_' . $DownloadReportFrom .'-'. $DownloadReportTo . '.csv'; 
$output_handle = @fopen('php://output', 'w'); 

header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Content-Description: File Transfer'); 
    header('Content-type: text/csv'); 
header('Content-Disposition: attachment; filename=' . $output_filename); 
header('Expires: 0'); 
header('Pragma: public');  

// Insert header row 
fputcsv($output_handle, $csv_fields); 

// Parse results to csv format 
foreach ($MyQuery as $Result) { 
$leadArray = (array) $Result; // Cast the Object to an array 
// Add row to file 
fputcsv($output_handle, $leadArray); 
} 

// Close output file stream 
fclose($output_handle); 

die(); 
exit(); 
} 
} 
?> 

我得到一些表则表标签

+1

你得到什么输出?以及你想要修正的问题,我的意思是请清除你的问题 – Nehal

+0

它输出的是HTML标签,但不是表格内容 –

回答

0

不要使用mysqli_query WPDB但查询::后显示数据库行。

由于wpdb::query返回受影响/选择的行数,因此您将该整数传递给mysqli_fetch_assoc,并且由于明显的原因它失败,因为它预期mysqli_result而不是某个数字。

你需要得到真正的mysqli连接,然后你的代码才能工作。

0

我得到它的工作:)

我只是去掉多余的参数

继承人的代码

$wpdb->show_errors(); 
global $wpdb;      
// Grab any post values you sent with your submit function 
$DownloadReportFrom = "ReportDateFrom"; 
$DownloadReportTo = "ReportDateFrom"; 

// Build your query 
// $MyQuery = $wpdb->get_results($wpdb->prepare('SELECT * FROM wp_rpci_rpci')); -Delete the ($wpdb->prepare     
$MyQuery = $wpdb->get_results('SELECT * FROM wp_rpci_rpci'); 



// Process report request 
if (! $MyQuery) { 
$Error = $wpdb->print_error(); 
die("The following error was found: $Error"); 
} else { 
// Prepare our csv download 

// Set header row values 
$csv_fields=array(); 
$csv_fields[] = 'Field Name 1'; 
$csv_fields[] = 'Field Name 2'; 

$output_filename = 'MyReport_' . $DownloadReportFrom .'-'. $DownloadReportTo . '.csv'; 
$output_handle = @fopen('php://output', 'w'); 

header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
    header('Content-Description: File Transfer'); 
header('Content-type: text/csv'); 
header('Content-Disposition: attachment; filename=' . $output_filename); 
header('Expires: 0'); 
header('Pragma: public'); 

// Insert header row 
fputcsv($output_handle, $csv_fields); 

// Parse results to csv format 
foreach ($MyQuery as $Result) { 
$leadArray = (array) $Result; // Cast the Object to an array 
// Add row to file 
fputcsv($output_handle, $leadArray); 
} 

// Close output file stream 
fclose($output_handle); 

die(); 

}