簡體   English   中英

使用PHP在導出的CSV文件格式中獲取錯誤

[英]Getting error in exported csv file format using php

我已使用以下代碼從頁面以csv格式保存數據。 保存后,我的csv文件中有一些額外的行。 我將如何刪除它,我需要為此參考。

$connection=mysql_connect($host, $uname, $pass); 

echo mysql_error();

//or die("Database Connection Failed");
$selectdb=mysql_select_db($database) or 
die("Database could not be selected"); 
$result=mysql_select_db($database)
or die("database cannot be selected <br>");

// Fetch Record from Database

$output = "";
$table = "tbl_record"; // Enter Your Table Name 
$sql = mysql_query("select * from $table");
$columns_total = mysql_num_fields($sql);

// Get The Field Name

for ($i = 0; $i < $columns_total; $i++) {
    $heading = mysql_field_name($sql, $i);
    $output .= '"'.$heading.'",';
}
$output .="\n";

// Get Records from the table

while ($row = mysql_fetch_array($sql)) {
    for ($i = 0; $i < $columns_total; $i++) {
        $output .='"'.$row["$i"].'",';
    }
    $output .="\n";
}

// Download the file

$filename = "myFile.csv";
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);

echo $output;
exit;

?>

這是下面的輸出值屏幕截圖

輸出CSV文件

紅色標記是不需要的線。

它警告不推薦使用mysql_* ,請不要使用它。 使用PDO,可以快速解決

//Put on top
error_reporting(E_ERROR | E_PARSE);

這將消除警告,這是一個很好的PDO入門閱讀

更新

要使用mysqli以CSV格式獲取字段名稱,您需要更改此代碼

更改為

// Get The Field Name
for ($i = 0; $i < $columns_total; $i++) {
      $heading = mysql_field_name($sql, $i);
      $output .= '"'.$heading.'",';
}
$output .="\n"; 

這個

while ($finfo = mysqli_fetch_field($result)) {
    $heading = $finfo->name;
    $output .= '"'.$heading.'",';
}

啟用mysqli_*

檢查您的php.ini是否具有extension=mysqli.so或類似名稱。 可以用#取消注釋。

啟用PDO

在Windows服務器上,您可以在php.ini中添加以下行

extension=php_pdo.dll
extension=php_pdo_mysql.dll

在Linux服務器上,可以使用以下選項--with-pdo-mysql編譯php在php.ini中,添加以下行

extension=pdo.so
extension=pdo_mysql.so

如您所見,您正在使用專用函數,並且正在生成警告。

使用error_reporting(0); 打開所有錯誤報告。

我也建議不要使用_mysql而是使用PDO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM