我已使用以下代码从页面以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;

?>


这是输出值的以下屏幕截图



红色标记是不需要的线。

最佳答案

它警告mysql_*已过时,请不要使用它。使用PDO,可以快速解决

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


这将消除警告,这是一个很好的入门read of 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服务器上,您可以使用以下选项编译php --with-pdo-mysql在php.ini中,添加以下行

extension=pdo.so
extension=pdo_mysql.so

10-05 20:34
查看更多