mysql数据库怎么上传 mysql数据库怎么导入文件( 二 )


2、将dotmud.csv文件通过FTP上传到服务器 。
3、上传data.php程序(程序附后),在浏览器调用data.php程序 , 将dotmud.csv文件的内容加入到数据库 。
二、特殊处理
一般的数据,通过上述步骤,基本可以顺利上传 。但对于包含特殊字符的数据(比如数据库记录中包含换行符、单引号、分号) , 就要做些特殊的处理 。
1、换行符的处理
PHP的fgetcsv()函数以换行符作为每行的结束标志 。如果MySQL数据表的记录包含换行符,fgetcsv()就不能完整读取记录行 。
笔者的解决方法是修改phpADMIN的lib.inc.php3文件(读者也可以不修改phpADMIN文件 , 而是用其mysql数据库怎么上传他方法直接加工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个文件上传到全路互联(),结果对方的服务器速度快,每个文件的处理时间还不到1秒 , 而php默认的限定执行时间可是30秒?。】蠢次易龅姆植鹗凳舳嘤?。
以上方法解决了数据库内容的上传问题 。对于数据库结构的上传,只要稍微修改一下data.php程序就可实现 。其实 , 如果库结构比较简单,用phpADMIN更方便
关于mysql数据库怎么上传和mysql数据库怎么导入文件的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

推荐阅读