PHP 8.5.0 Alpha 2 available for testing

Voting

: nine minus zero?
(Example: nine)

The Note You're Voting On

jamie at agentdesign dot co dot uk
13 years ago
Utility function to output a mysql query to csv with the option to write to file or send back to the browser as a csv attachment.

<?php
function query_to_csv($db_conn, $query, $filename, $attachment = false, $headers = true) {

if(
$attachment) {
// send response headers to the browser
header( 'Content-Type: text/csv' );
header( 'Content-Disposition: attachment;filename='.$filename);
$fp = fopen('php://output', 'w');
} else {
$fp = fopen($filename, 'w');
}

$result = mysql_query($query, $db_conn) or die( mysql_error( $db_conn ) );

if(
$headers) {
// output header row (if at least one row exists)
$row = mysql_fetch_assoc($result);
if(
$row) {
fputcsv($fp, array_keys($row));
// reset pointer back to beginning
mysql_data_seek($result, 0);
}
}

while(
$row = mysql_fetch_assoc($result)) {
fputcsv($fp, $row);
}

fclose($fp);
}

// Using the function
$sql = "SELECT * FROM table";
// $db_conn should be a valid db handle

// output as an attachment
query_to_csv($db_conn, $sql, "test.csv", true);

// output to file system
query_to_csv($db_conn, $sql, "test.csv", false);
?>

<< Back to user notes page

To Top