摘要:[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!
参考看看啰~
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。