php读取sql数据,php读取sql文件导入数据库

像这种php读取sql文件导入数据库情况,用得最多的就是数据库备份与还原来了,原理很简单按指定格式导入成.sql文件或利用phpmyadmin导出都可以用本程序来实现导入,代码如下:'5.0') {

mysql_query("set sql_mode=''");

}

$file2 = file_get_contents($file);

$file2 = iconv("utf-8", "gbk", $file2);

$file2 = str_replace("seo教程_", $mysql_table_prefix, $file2); //将文件中数据库表前缀换成用户设定的前缀

$file2 = explode("n", $file2); //将文件内容按行读入到数组

$c1 = count($file2);

for ($j = 0; $j < $c1; $j++) {

$ck = substr($file2[$j], 0, 4); //取每行的前4个字符

if (ereg("#", $ck) || ereg("--", $ck)) //去掉注释

{

continue;

}

$arr[] = $file2[$j]; //将去掉注释的文件内容按行读入数组$arr,数组每个元素对应一行

}

$read = implode("n", $arr); //重新组织文件内容到一个字符串,(按照原来分好的一行一行的)

$sql = str_replace("r", '', $read); //去掉"r(回车符)"

$detail = explode(";n", $sql);

//将经上述整理过的文件内容再次按一条完整的sql语句(以;和n分隔)导入到数组$detail,

//此时数组detail的每个元素对应一条完整的sql语句

$count = count($detail);

for ($i = 0; $i < $count; $i++) {

$sql = str_replace("r", '', $detail[$i]); //去掉每行sql中的回车符

$sql = str_replace("n", '', $sql); //去掉换行符

$sql = trim($sql); //去掉前后空格

//现在的$sql

if ($sql) {

if (eregi("create table", $sql)) //如果当前的sql语句是创建新表,则考虑版本兼容,以及重设字符集

{

//$mysqlv=mysql_get_server_info();

$sql = preg_replace("/default charset=([a-z0-9]+)/is", "", $sql); //去除原来的字符集设置信息

$sql = preg_replace("/type=myisam/is", "engine=myisam", $sql);

if ($dbcharset) {

$sql = str_replace("engine=myisam", " engine=myisam default charset=$dbcharset ", $sql);

}

if (mysql_get_server_info() < '4.1') { //开源代码phprm.com

$sql = preg_replace("/engine=myisam/is", "type=myisam", $sql); //

}

}

mysql_query($sql);

}

}

}

永久地址:

转载随意~请带上教程地址吧^^

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值