我使用以下代码将MySQL数据库的内容输出到一个文本文件中:
<?php
$host = 'localhost';
$user = 'myusername';
$pass = 'mypassword';
$db = 'mydbname';
$table = 'mytablename';
$file = 'outputfilename';
$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("Can not connect.");
$result = mysql_query("SHOW COLUMNS FROM ".$table."");
$i = 0;
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
//$csv_output .= $row['Field']."; ";
$i++;
}
}
$csv_output .= "\n";
$values = mysql_query("SELECT * FROM ".$table."");
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) {
$csv_output .= $rowr[$j].",";
}
$csv_output .= "\n";
}
//echo $csv_output;
$myFile = "output.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = $csv_output;
fwrite($fh, $stringData);
fclose($fh);
exit;
?>但是,我想知道在将字符串",,,"放入文本文件之前,如何将其替换为:","。
发布于 2011-03-07 09:01:37
使用preg_replace()。类似于以下内容(未经测试):
$pattern = '/\,\,\,/';
$replacement = ',';
echo preg_replace($pattern, $replacement, $stringData);发布于 2011-03-07 09:09:42
发布于 2011-03-07 09:08:36
问题出在:
$values = mysql_query("SELECT * FROM ".$table."");如果你得到的是,,,,,这意味着一些列没有值。检测这些列,不要将它们包含在SELECT语句中。
如果您将自动(preg_replace,str_replace)将多个逗号更改为一个逗号,则很可能会损坏CSV文件。
https://stackoverflow.com/questions/5214700
复制相似问题