Home >Backend Development >PHP Tutorial >How to export mysql data to csv file using specified encoding_PHP tutorial

How to export mysql data to csv file using specified encoding_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 09:58:28876browse

How to export mysql data to a csv file in php using the specified encoding

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:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

/*

* 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";

}

?>

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
<๐ŸŽœ>/*<๐ŸŽœ> <๐ŸŽœ>* 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";<๐ŸŽœ> <๐ŸŽœ>}<๐ŸŽœ> <๐ŸŽœ>?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/977164.htmlTechArticlephp uses the specified encoding to export mysql data to a csv file. This article describes the example of php using the specified encoding to export mysql data to csv file method. Share it with everyone for your reference. Specifically...
Statement๏ผš
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn