2017-01-19 144 views
1

我有一个旧的PHP应用程序,我试图找出为什么我无法导出为CSV。PHP:将sql数据导出为CSV

在页面里显示的页面下面的链接将显示导出为CSV的SQL数据:

<p class="content_text"><strong><a href="export.php?tablename=PrivateActs109">Export to Excel</a></strong></p> 

然后是export.php文件的全部内容:

<?php /* ########## Connect to Database ########## */ 

require_once('../Connections/dbConnect_acts.php'); 
mysql_select_db($database_dbConnect, $dbConnect) or die ("no luck") ; 



// Export to CSV 
require '../includes/exportcsv.inc.php'; 
$table=$tablename; // this is the tablename that you want to export to csv from mysql. 
$sql_query = "SELECT `ChapterNumber`, `Subject`, `Abstract` , `BillNumber` FROM $tablename "; 
exportMysqlToCsv($table,$sql_query); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");header("Content-Length: " . strlen($out)); 
// Output to browser with appropriate mime type, you choose ;) 
//header("Content-type: text/x-csv"); 
//header("Content-type: text/csv"); 
header("Content-type: application/csv"); 
header("Content-Disposition: attachment; filename=$filename"); 

?> 

寻找因为我对PHP还很陌生。

+1

'$ table = $ tablename'应该是'$ table = $ _ GET ['tablename']'因为'register_globals_gpc'已关闭,但是这会打开一个全新的SQL注入蠕虫罐,因为它被用于查询。 http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq=1 – AbraCadaver

+0

@AbraCadaver谢谢,刚进入这个应用程序。 CSV确实已经创建,但我没有得到我期望的。 – Jason

+0

'require'行包含/ exportcsv.inc.php';'include?那么'exportMysqlToCsv($ table,$ sql_query)'这行呢?我们看不到这些,所以我们不知道发生了什么。 – Mike

回答

0

彼时我不得不在$表更改为以下:

$table=$_GET['tablename']; 

感谢您的建议,这是一个传统的应用程序,我从它的工作学到了很多关于PHP。