Accessing Databases with ADODB - Exporting Data
(Page 12 of 12 )
The toexport.inc.php file defines some functions that export record sets as tab-delimited or Comma-Separated Value (CSV ) data. The rs2csv() function returns a string containing the record set as a series of CSV lines:
$rs = $conn->Execute('SELECT * FROM ice_cream');
$csv = rs2csv($rs);
The rs2tab() function returns a string containing the record set as a series of lines with tab-delimited values:
Accessing Databases with ADODB
$rs = $conn->Execute('SELECT * FROM ice_cream');
$csv = rs2tab($rs);
Both functions escape double quotes by doubling them. A double quote mark in a value is turned into "" in the output. Fields with double quotes in them are also surrounded by double quotes. The rs2csv() function also surrounds fields that contain commas with double quotes.
There are also versions of these functions that save the CSV or tab-delimited data directly to a file, called rs2csvfile() and rs2tabfile(). These functions should be passed a file handle as a second argument:
if ($fh = fopen('/tmp/ice_cream.csv','w')) {
$rs = $conn->Execute('SELECT * FROM ice_cream');
rs2csvfile($rs,$fh);
fclose($fh);
} else {
print "Can't open /tmp/ice_cream.csv";
}
Additionally, there are versions of rs2csv() and rs2tab() that print the exported string rather than returning it. They are called rs2csvout() and rs2tabout():
$rs = $conn->Execute('SELECT * FROM ice_cream');
rs2tabout($rs);
Aside from the conversion of double quotes in values, all six export functions convert newlines in values to spaces in output. They also include a title line consisting of the column names in the record set. To suppress the title line, pass false as a last argument to any of the functions.
This is from Essential PHP Tools, by David Sklar (Apress, ISBN 1590592808). Check it out at your favorite bookstore today. Buy this book now. |
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |