摘要:[PHP、MySQL] 数据进入数据库后要导出
前几天,在做数据库导出(MySQL to xls)的设计时,遇到一个很严重的问题。
就是数据导出到Excel档的时候,如果数据库内的字段内容有text的型态并且存入的数据有断行的话,在Excel导出时也会出现断行。
也就是会断到下一列,为了解决这个问题,仔细的研究了一下我做文件输入时干了些什么东西...$chapterRange= addslashes($_POST['chapterRange']);
$testRange = addslashes($_POST['testRange']);
$numberofPeople = addslashes($_POST['numberofPeople']);
$environment = addslashes($_POST['environment']);
$homeBook = addslashes($_POST['homeBook']);
发现在数据进入数据库前我做了addslashes,但想想...这跟输入有什么关系?他只是加了个反斜线在一些特殊符前而已,所以我把方向转到导出的问题。
因为很清楚会断行要嘛就是n在作怪,要嘛就是
在做怪,所以就先朝个n的方向做处理。
于是我在输出端加入了取代n的函数:$chapterRange = str_replace("n","",$row[chapterRange]);
$testRange = str_replace("n","",$row[testRange]);
$numberofPeople = str_replace("n","",$row[numberofPeople]);
$environment = str_replace("n","",$row[environment]);
$homeBook = str_replace("n","",$row[homeBook]);
接着输出...糟糕,导出的Excel档还是一样断行,怎么办..
想了想,加入一个函数做处里看看:$chapterRange = mysql_real_escape_string($chapterRange);
$testRange = mysql_real_escape_string($testRange);
$numberofPeople = mysql_real_escape_string($numberofPeople);
$environment = mysql_real_escape_string($environment);
$homeBook = mysql_real_escape_string($homeBook);
mysql_real_escape_string这个函数主要就是将SQL里的特殊符做显示,加入后,很漂亮的输出...虽然在导出的Excel档里有一堆r的断行符,但后来测试做导入,很OK!
参考看看啰~