diff --git a/ChangeLog b/ChangeLog index b44db9806..0e576e59d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -75,6 +75,7 @@ danbarry - bug #1992628 [parser] SQL parser removes essential space - bug #1989281 [export] Export fails if one table is marked as crashed - bug #2001005 [GUI] ARCHIVE cannot have indexes +- bug #1989281 [export] CSV for MS Excel incorrect escaping of double quotes 2.11.7.0 (2008-06-23) - bug #1908719 [interface] New field cannot be auto-increment and primary key diff --git a/libraries/export/csv.php b/libraries/export/csv.php index b1f5a6ef4..b1b6b2236 100644 --- a/libraries/export/csv.php +++ b/libraries/export/csv.php @@ -184,9 +184,17 @@ function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) { $schema_insert .= $row[$j]; } else { // also double the escape string if found in the data - $schema_insert .= $csv_enclosed + if ('csv' == $what) { + $schema_insert .= $csv_enclosed . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, str_replace($csv_escaped, $csv_escaped . $csv_escaped, $row[$j])) . $csv_enclosed; + } else { + // for excel, avoid a problem when a field contains + // double quotes + $schema_insert .= $csv_enclosed + . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $row[$j]) + . $csv_enclosed; + } } } else { $schema_insert .= '';