This article describes the method of exporting mysql data to a csv file in php using the specified encoding. Share it with everyone for your reference. The specific implementation method is as follows:
|
<🎜>/*<🎜> <🎜>* PHP code to export MySQL data to CSV<🎜> <🎜>*<🎜> <🎜>* Sends the result of a MySQL query as a CSV file for download<🎜> <🎜>* Easy to convert to UTF-8.<🎜> <🎜>*/<🎜> <🎜> <🎜> <🎜>/*<🎜> <🎜>* establish database connection<🎜> <🎜>*/<🎜> <🎜> <🎜> <🎜>$conn = mysql_connect('localhost', 'login', 'pass') or die(mysql_error());<🎜> <🎜>mysql_select_db('database_name', $conn) or die(mysql_error($conn));<🎜> <🎜>mysql_query("SET NAMES CP1252");<🎜> <🎜>/*<🎜> <🎜>* execute sql query<🎜> <🎜>*/<🎜> <🎜>$query = sprintf('SELECT field1,field2 FROM table_name');<🎜> <🎜>$result = mysql_query($query, $conn) or die(mysql_error($conn));<🎜> <🎜>/*<🎜> <🎜>* send response headers to the browser<🎜> <🎜>* following headers instruct the browser to treat the data as a csv file called export.csv<🎜> <🎜>*/<🎜> <🎜>header('Content-Type: text/csv; charset=cp1252');<🎜> <🎜>header('Content-Disposition: attachment;filename=output.csv');<🎜> <🎜>/*<🎜> <🎜>* output header row (if atleast one row exists)<🎜> <🎜>*/<🎜> <🎜> <🎜> <🎜>$row = mysql_fetch_assoc($result);<🎜> <🎜>if ($row) {<🎜> <🎜>echocsv(array_keys($row));<🎜> <🎜>}<🎜> <🎜> <🎜> <🎜>/*<🎜> <🎜>* output data rows (if atleast one row exists)<🎜> <🎜>*/<🎜> <🎜>while ($row) {<🎜> <🎜>echocsv($row);<🎜> <🎜>$row = mysql_fetch_assoc($result);<🎜> <🎜>}<🎜> <🎜> <🎜> <🎜>/*<🎜> <🎜>* echo the input array as csv data maintaining consistency with most CSV implementations<🎜> <🎜>* - uses double-quotes as enclosure when necessary<🎜> <🎜>* - uses double double-quotes to escape double-quotes<🎜> <🎜>* - uses CRLF as a line separator<🎜> <🎜>*/<🎜> <🎜> <🎜> <🎜>function echocsv($fields)<🎜> <🎜>{<🎜> <🎜>$separator = '';<🎜> <🎜>foreach ($fields as $field) {<🎜> <🎜>if (preg_match('/\r|\n|,|"/', $field)) {<🎜> <🎜>$field = '"' . str_replace('"', '""', $field) . '"';<🎜> <🎜>}<🎜> <🎜>echo $separator . $field;<🎜> <🎜>$separator = ',';<🎜> <🎜>}<🎜> <🎜>echo "rn";<🎜> <🎜>}<🎜> <🎜>?> |