我有一个名为 pvdata 的 sql 表,我想将其导出到 csv 文件。
但我得到以下结果而不是正常的表格:
<br />
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1'cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined variable: header in C:\wamp\www\EXPORT TABLE\index.php on line <i>28</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0035</td><td bgcolor='#eeeeec' align='right'>256088</td><td bgcolor='#eeeeec'>{main}( )</td><td title='C:\wamp\www\EXPORT TABLE\index.php' bgcolor='#eeeeec'>..\index.php<b>:</b>0</td></tr>
</table></font>
"id id state id state Longitude id state Longitude Latitude id state Longitude Latitude Altitude(km) id state Longitude Latitude Altitude(km) Module Tilt id state Longitude Latitude Altitude(km) Module Tilt Module Azimuth id state Longitude Latitude Altitude(km) Module Tilt Module Azimuth Rated Peak Power(kW) id state Longitude Latitude Altitude(km) Module Tilt Module Azimuth Rated Peak Power(kW) Temperature losses coefficient id state Longitude Latitude Altitude(km) Module Tilt Module Azimuth Rated Peak Power(kW) Temperature losses coefficient Nominal Operation Cell Temperature id state Longitude Latitude Altitude(km) Module Tilt Module Azimuth Rated Peak Power(kW) Temperature losses coefficient Nominal Operation Cell Temperature Invertor Effeciency id state Longitude Latitude Altitude(km) Module Tilt Module Azimuth Rated Peak Power(kW) Temperature losses coefficient Nominal Operation Cell Temperature Invertor Effeciency Persil Name <br />"
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined variable: data in C:\wamp\www\EXPORT TABLE\index.php on line <i>49</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0035</td><td bgcolor='#eeeeec' align='right'>256088</td><td bgcolor='#eeeeec'>{main}( )</td><td title='C:\wamp\www\EXPORT TABLE\index.php' bgcolor='#eeeeec'>..\index.php<b>:</b>0</td></tr>
</table></font>"id state Longitude Latitude Altitude(km) Module Tilt Module Azimuth Rated Peak Power(kW) Temperature losses coefficient Nominal Operation Cell Temperature Invertor Effeciency Persil Name "
"1 ""persil"" ""0"" ""0"" ""0"" ""0"" ""0"" ""0"" ""0.0047"" ""47"" ""0.9"" ""PERSIL07"""
"2 ""other"" ""12"" ""12"" ""0"" ""15"" ""150"" ""12"" ""0.0046"" ""45"" ""0.95"" ""predefined"""
我的 PHP 代码是:
<?php
$username = "root";
$password = "";
$hostname = "localhost";
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
$selected = mysql_select_db("user data smart grid",$dbhandle)
or die("Could not select Data Base");
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=pvdata.csv");
header("Pragma: no-cache");
header("Expires: 0");
$query = "SELECT * FROM pvdata";
$export = mysql_query ($query ) or die ( "Sql error : " . mysql_error( ) );
$fields = mysql_num_fields ( $export );
for ( $i = 0; $i < $fields; $i++ )
{
$header .= mysql_field_name( $export , $i ) . "\t";
echo $header;
}
while( $row = mysql_fetch_row( $export ) )
{
$line = '';
foreach( $row as $value )
{
if ( ( !isset( $value ) ) || ( $value == "" ) )
{
$value = "\t";
}
else
{
$value = str_replace( '"' , '""' , $value );
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim( $line ) . "\n";
}
$data = str_replace( "\r" , "" , $data );
if ( $data == "" )
{
$data = "\n(0) Records Found!\n";
}
print "$header\n$data";
exit();
?>
那么出了什么问题呢?
如果我从 phpmyadmin 手动导出表,它工作正常。
如果可能的话,我还想获取表中列的名称。
在 for 循环之前将 $header 初始化为空字符串。
$header = '';//initialize header
for ( $i = 0; $i < $fields; $i++ )
{
$header .= mysql_field_name( $export , $i ) . "\t";
echo $header;//remove this line
}
EDIT
还在 while 循环之外初始化 $data。
$data = '';
while( $row = mysql_fetch_row( $export ) )
{
$line = '';
foreach( $row as $value )
{
if ( ( !isset( $value ) ) || ( $value == "" ) )
{
$value = "\t";
}
else
{
$value = str_replace( '"' , '""' , $value );
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim( $line ) . "\n";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)