[PHP、MySQL] 数据进入数据库后要导出

摘要:[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!

参考看看啰~

原文:大专栏  [PHP、MySQL] 数据进入数据库后要导出

原文地址:https://www.cnblogs.com/petewell/p/11516556.html

时间: 2024-11-05 19:04:37

[PHP、MySQL] 数据进入数据库后要导出的相关文章

Excel向数据库插入数据和数据库向Excel导出数据

为了熟悉java里工作簿的相关知识点,所以找了"Excel向数据库插入数据和数据库向Excel导出数据"的功能来实现. 注意事项:1,mysql数据库: 2,需要导入的jar包有 jxl.jar,mysql-connector-java-5.1.22-bin.jar,ojdbc6.jar 代码如下: 一, 建立数据库名称 javaforexcel,建立表stu DROP TABLE IF EXISTS `stu`;CREATE TABLE `stu` (  `id` int(11) N

MySQL之IDE工具介绍及数据备份(数据库导入,导出)

MySQL之IDE工具介绍及数据备份 一.IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 二.MySQL数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境( 如数据文件.控制文件.归档日志文件等).但不能恢复到异构系统中如Windows. #2. 逻辑备份: 备份的是建表.建库.插入等操作所执行SQL语句,适用于中小型数据库,效率相对较低.#3. 导出表:

mysql数据与Hadoop之间导入导出之Sqoop实例

前面介绍了sqoop1.4.6的 如何将mysql数据导入Hadoop之Sqoop安装,下面就介绍两者间的数据互通的简单使用命令. 显示mysql数据库的信息,一般sqoop安装测试用 sqoop list-databases --connect jdbc:mysql://192.168.2.101:3306/ --username root --password root 显示数据库里所有表: sqoop list-tables --connectjdbc:mysql://192.168.2.

WINDOWS下更改MYSQL数据路径(datadir)后服务启动1067解决不能改变mysql数据库存储位置

晚上安装完MYSQL(系统:深度WINXPSP2, MYSQL版本:5.1.32)后,用MYSQL自带的配置工具配置完发现默认的数据存放路径是:C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/.感觉很不爽,就修改一直想在配置工具中修改这个路径,结果发现"NO WAY".只好手工修改my.ini了.结果痛苦的历程开始了: 1.修改路径为:E:\dev\MySQL5.1\Dat

MySQL 数据(数据库)迁移

查找MySQL真正的Data目录 show variables like 'datadir'; +---------------+-----------------+ | Variable_name | Value | +---------------+-----------------+ | datadir | /var/lib/mysql/ | +---------------+-----------------+ 步骤: 关闭apache,tomcat 关闭MySQL 移动/var/lib

mysql数据优化--数据库结构的优化

1,比如存时间类型的就使用int类型   其中mysql的两个函数可以拿来使用 unix_timestamp 将时间日期转化为时间戳 from_unixtime 将时间戳转化为日期 2.ip地址存储用bigint类型 说白了 ,就是存储的字节越短越好

MySQL数据库使用mysqldump导出数据详解

mysqldump是mysql用于转存储数据库的实用程序.它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等.接下来通过本文给大家介绍MySQL数据库使用mysqldump导出数据详解,需要的朋友一起学习吧 mysqldump是mysql用于转存储数据库的客户端程序.它主要产生一系列的SQL语句,可以封装到文件,该文件包含有所有重建您的数据库所 需要的 SQL命令如CREATE DATABASE,CREATE TABLE,INSERT等等.可

Navicat for mysql 导入导出数据表数据库

1.导出数据表 联通 如图所示,右击所要进行导出的表格,选择 Dump SQL File 下面的选项是只导出数据表结构,没有数据 上面的选项包含数据,连同表结构带着数据一同进行导出 2.导入数据表 选择数据库,右击进入,选择 Excute SQL File,自动弹出文件选择的列表,找到想要的文件,进行导入 3.导出数据库 操作方式与导出数据表相似,只是这部分变成了右击数据库来进行操作. 4.导入数据库 严格意义上来讲,导出的数据库文件只是一堆表结构关系,导入数据库文件本质上就是讲这些表导进来,操

mysql数据导出权限问题

mysql数据导出的方法有非常多,比如mysqldump, mysql -e 'sql' > file, 这些都能够非常方便的导出数据,但是在使用普通用户导出数据的时候,出现了问题. 1 select * into outfile "file_path" from my_table 上面的语句也是mysql导出数据的一种方式,在使用普通用户运行语句时.出现了一下错误: 1 ERROR 1045 (28000): Access denied for user 'my_user'@'