三九宝宝网宝宝百科宝宝知识

MySQL数据库怎么上传

01月06日 编辑 39baobao.com

[oracle是什么类型的数据库]答: 关系型数据库 什么是关系型数据库? 关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表, 一组表组成了数据库。用户用查询(Query)来检索数据库中...+阅读

一、一般步骤

1、用phpADMIN生成CSV格式文件

以PHP+MySQL模式建立个人主页的读者,在自己的机器上都有PHP+MySQL环境吧?就在这个环境下,用phpADMIN生成以分号为分隔符的dotmud.csv文件。

2、将dotmud.csv文件通过FTP上传到服务器。

3、上传data.php程序(程序附后),在浏览器调用data.php程序,将dotmud.csv文件的内容加入到数据库。

二、特殊处理

一般的数据,通过上述步骤,基本可以顺利上传。但对于包含特殊字符的数据(比如数据库记录中包含换行符、单引号、分号),就要做些特殊的处理。

1、换行符的处理

PHP的fgetcsv()函数以换行符作为每行的结束标志。如果MySQL数据表的记录包含换行符,fgetcsv()就不能完整读取记录行。

笔者的解决方法是修改phpADMIN的lib.inc.php3文件(读者也可以不修改phpADMIN文件,而是用其他方法直接加工phpADMIN生成的dotmud.csv文件,达到同样的效果)的get_table_csv()函数:

在 $schema_insert=ereg_replace($sep."$","",$schema_insert) 行后加入如下命令行

$schema_insert=ereg_replace("\r\n","`return`",$schema_insert)

将换行符转换为不容易出现的换行标识串`return`(读者可根据自己数据的特点设置独特的换行标识串),再在data.php程序中加一行命令$data[$i]=ereg_replace("`return`","\r\n",$data[$i]),用来将换行标识串还原成换行符。

2、分隔符的处理

如果MySQL记录行恰好包含CSV分隔符,fgetcsv()进行分隔处理时就会出现问题。

笔者仍然是通过修改lib.inc.php3文件解决的。

在get_table_csv()的$schema_insert="$row[$j]".$sep行前加一行

$row[$j]=ereg_replace($sep,"`return_sep`",$row[$j]) 命令,将分隔符转为分隔标识串`return_sep`,同时在data.php中用命令行 $data[$i]=ereg_replace("`return_sep`",";",$data[$i]) 进行还原处理。

3、单引号的处理

MySQL的SQL语句行对单引号有特殊的定义,如果直接提交含单引号的SQL语句,就会出错。这种情况需要加上转义符。在data.php中加一行 $data[$i]=ereg_replace("'","\'",$data[$i]) 就可解决。

另外,在数据记录特别多的的情况下,dotmud.csv文件可能比较大,如果在服务器的限定时间内不能执行完data.php程序,就需要按行分拆dotmud.csv。如笔者有个7000行的dotmud.csv文件,在自己的机器上执行到600行就提示超时,便拆成10个文件上传到全路互联(.wayall.com),结果对方的服务器速度快,每个文件的处理时间还不到1秒,而php默认的限定执行时间可是30秒啊!看来我做的分拆实属多余。

以上方法解决了数据库内容的上传问题。对于数据库结构的上传,只要稍微修改一下data.php程序就可实现。其实,如果库结构比较简单,用phpADMIN更方便。

以下为关联文档:

oracle数据库是什么结构Oracle数据库的体系结构包括四个方面:数据库的物理结构、逻辑结构、内存结构及进程。 1. 物理结构 物理数据库结构是由构成数据库的操作系统文件所决定,Oracle数据库文件包括:...

怎样利用Oracle数据库表完整性功能提高数据输入准确率Oracle数据库表的完整性功能是一个非常实用的功能,利用这个功能可以提高表中数据的准确率。根据其具体实现方式的不同,表的完整性包括三部分内容,分别是实体完整性、域完整性与...

Oracle数据库内存设置的步骤是怎样的假设:oracle安装目录 D:\oracle 数据库的实例名 XXX 内存配置步骤: 1)打开dos,运行 D:\oracle>sqlplus /nolog SQL>connect / as sysdba SQL>create pfile from spfile; SQL>shu...

在JSP中要把数据通过SERVLET传到数据库但是那个出生年月是用你好,select和普通标签一样取值 <select name="year">....</select> servlet中获取:String year = request.getParameter("year"); String month= request.getParameter("month"); S...

如何建立数据库一、建立数据库方法一:使用向导,调出方法⑴可采用“文件”菜单“新建”⑵或采用“工具”菜单“向导”方法二:使用数据库设计器 1、使用向导建立数据库特点:可以方便快捷地创建数...

如何自建数据库正规写法: USE master GO CREATE DATABASE 数据库名 ON PRIMARY ( NAME ='名字', FILENAME = '物理地址' , SIZE = '大小' , MAXSIZE = UNLIMITED, FILEGROWTH = '*KB' ) LOG ON...

如何创建数据库IF EXISTS (SELECT * FROM master..sysdatabases WHERE name = N'<database_name, sysname, test_db>') DROP DATABASE <database_name, sysname, test_db> GO CREATE DATAB...

怎样创建数据库第一.SQL Server 2000创建数据库表.很简单.打开企业管理器.树状结构图打开至数据库文件夹.右键新建数据库.数据库名字自己取.选择数据文件和事务日志的放置地点.最好和自己...

建立一个数据库 !怎样建立!看你用什么数据库管理系统,比如SQL Server: 1、先建立名称为mydb的数据库: create database mydb 2、切换到当前数据库: use mydb 3、在mydb数据库中创建数据表,例如: CREATE TAB...

推荐阅读
图文推荐