php导入sql文件_PHP教程

php中文网
发布: 2016-07-13 10:19:49
原创
1150人浏览过

php导入sql文件

php导入sql文件

sql php


php导入sql文件

基本思路

1.打开sql文件,放入一个变量(字符串类型)当中

2.使用正则替换掉当中的注释(“--”与“/**/”)

3.使用explode分割成为一个数组并去除每行的空格

豆包AI编程
豆包AI编程

豆包推出的AI编程助手

豆包AI编程 483
查看详情 豆包AI编程

4.链接数据库之后使用my_query()执行sql

立即学习PHP免费学习笔记(深入)”;

代码

<ol class="linenums"><li class="L0"><code class="php"><?php</code><li class="L1"><code class="php"></code><li class="L2"><code class="php">// &#43;------------------------------------------------------------------------------------------</code><li class="L3"><code class="php">// | Author: longDD <longdd_love@163.com></code><li class="L4"><code class="php">// &#43;------------------------------------------------------------------------------------------</code><li class="L5"><code class="php">// | There is no true,no evil,no light,there is only power.</code><li class="L6"><code class="php">// &#43;------------------------------------------------------------------------------------------</code><li class="L7"><code class="php">// | Description: import sql Dates: 2014-08-07</code><li class="L8"><code class="php">// &#43;------------------------------------------------------------------------------------------</code><li class="L9"><code class="php"></code><li class="L0"><code class="php"></code><li class="L1"><code class="php">class ImportSql </code><li class="L2"><code class="php">{</code><li class="L3"><code class="php"></code><li class="L4"><code class="php">    /** @var $content 数据库连接 */</code><li class="L5"><code class="php">    protected $connect = null;</code><li class="L6"><code class="php">    /** @var $db 数据库对象 */</code><li class="L7"><code class="php">    protected $db = null;</code><li class="L8"><code class="php">    /** @var $sqlFile sql文件 */</code><li class="L9"><code class="php">    public $sqlFile = "";</code><li class="L0"><code class="php">    /** @array @sqlArr sql语句数组 */</code><li class="L1"><code class="php">    public $sqlArr = array();</code><li class="L2"><code class="php"></code><li class="L3"><code class="php">    /** </code><li class="L4"><code class="php">     * 构造函数</code><li class="L5"><code class="php">     * </code><li class="L6"><code class="php">     * @param string $host 主机地址</code><li class="L7"><code class="php">     * @param string $user 用户名</code><li class="L8"><code class="php">     * @param string $pw 密码</code><li class="L9"><code class="php">     * @param $db_name 数据库名称</code><li class="L0"><code class="php">     * @return void</code><li class="L1"><code class="php">     */</code><li class="L2"><code class="php">    public function __construct($host, $user, $pw, $db_name) </code><li class="L3"><code class="php">    {</code><li class="L4"><code class="php">        /** 连接数据库 */</code><li class="L5"><code class="php">        $this->connect = mysql_connect($host, $user, $pw) or die("Could not connect: " . mysql_error());</code><li class="L6"><code class="php">        /** 选中数据库 */</code><li class="L7"><code class="php">        $this->db = mysql_select_db($db_name, $this->connect) or die("Yon can not select the table:" . mysql_error());</code><li class="L8"><code class="php">    }</code><li class="L9"><code class="php"></code><li class="L0"><code class="php">    /** </code><li class="L1"><code class="php">     * 导入sql文件</code><li class="L2"><code class="php">     * </code><li class="L3"><code class="php">     * @param string $url 文件路径</code><li class="L4"><code class="php">     * @return true 导入成返回true</code><li class="L5"><code class="php">     */</code><li class="L6"><code class="php">    public function Import($url) </code><li class="L7"><code class="php">    {</code><li class="L8"><code class="php">        if(!file_exists($url))</code><li class="L9"><code class="php">        {</code><li class="L0"><code class="php">            exit("文件不存在!");</code><li class="L1"><code class="php">        }</code><li class="L2"><code class="php"></code><li class="L3"><code class="php">        $this->sqlFile = file_get_contents($url);</code><li class="L4"><code class="php"></code><li class="L5"><code class="php">        if (!$this->sqlFile) </code><li class="L6"><code class="php">        {</code><li class="L7"><code class="php">            exit("打开文件错误!");</code><li class="L8"><code class="php">        } </code><li class="L9"><code class="php">        else </code><li class="L0"><code class="php">        {</code><li class="L1"><code class="php">            $this->GetSqlArr();</code><li class="L2"><code class="php"></code><li class="L3"><code class="php">            if ($this->Runsql()) </code><li class="L4"><code class="php">            {</code><li class="L5"><code class="php">                return true;</code><li class="L6"><code class="php">            }</code><li class="L7"><code class="php">        }</code><li class="L8"><code class="php">    }</code><li class="L9"><code class="php"></code><li class="L0"><code class="php">    /**</code><li class="L1"><code class="php">     * 获取sql语句数组</code><li class="L2"><code class="php">     * </code><li class="L3"><code class="php">     * @return void</code><li class="L4"><code class="php">     */</code><li class="L5"><code class="php">    public function GetSqlArr() </code><li class="L6"><code class="php">    {</code><li class="L7"><code class="php">        /** 去除注释 */</code><li class="L8"><code class="php">        $str = $this->sqlFile;</code><li class="L9"><code class="php">        $str = preg_replace('/--.*/i', '', $str);</code><li class="L0"><code class="php">        $str = preg_replace('/\/\*.*\*\/(\;)?/i', '', $str);</code><li class="L1"><code class="php"></code><li class="L2"><code class="php">        /** 去除空&#26684; 创建数组 */</code><li class="L3"><code class="php">        $str = explode(";\n", $str);</code><li class="L4"><code class="php"></code><li class="L5"><code class="php">        foreach ($str as $v) </code><li class="L6"><code class="php">        {</code><li class="L7"><code class="php">            $v = trim($v);</code><li class="L8"><code class="php"></code><li class="L9"><code class="php">            if (empty($v)) </code><li class="L0"><code class="php">            {</code><li class="L1"><code class="php">                continue;</code><li class="L2"><code class="php">            } </code><li class="L3"><code class="php">            else </code><li class="L4"><code class="php">            {</code><li class="L5"><code class="php">                $this->sqlArr[] = $v;</code><li class="L6"><code class="php">            }</code><li class="L7"><code class="php">        }</code><li class="L8"><code class="php">    }</code><li class="L9"><code class="php"></code><li class="L0"><code class="php">    /**</code><li class="L1"><code class="php">     * 执行sql文件</code><li class="L2"><code class="php">     * </code><li class="L3"><code class="php">     * @return true 执行成功返回true</code><li class="L4"><code class="php">     */</code><li class="L5"><code class="php">    public function RunSql() </code><li class="L6"><code class="php">    {</code><li class="L7"><code class="php">        /** 开启事务 */</code><li class="L8"><code class="php">        if (mysql_query('BEGIN'))</code><li class="L9"><code class="php">        {</code><li class="L0"><code class="php">            foreach ($this->sqlArr as $k => $v)</code><li class="L1"><code class="php">            {</code><li class="L2"><code class="php">                if (!mysql_query($v)) </code><li class="L3"><code class="php">                {</code><li class="L4"><code class="php">                    /** 回滚 */</code><li class="L5"><code class="php">                    mysql_query('ROLLBACK');</code><li class="L6"><code class="php"></code><li class="L7"><code class="php">                    exit("sql语句错误:第" . $k . "行" . mysql_error());</code><li class="L8"><code class="php">                }</code><li class="L9"><code class="php">            }</code><li class="L0"><code class="php"></code><li class="L1"><code class="php">            /** 提交事务 */</code><li class="L2"><code class="php">            mysql_query('COMMIT');</code><li class="L3"><code class="php">            return true;</code><li class="L4"><code class="php">        }</code><li class="L5"><code class="php">        else</code><li class="L6"><code class="php">        {</code><li class="L7"><code class="php">            exit('无法开启事务!');</code><li class="L8"><code class="php">        }</code><li class="L9"><code class="php">    }</code><li class="L0"><code class="php"></code><li class="L1"><code class="php">}</code><li class="L2"><code class="php"></code><li class="L3"><code class="php">// &#43;------------------------------------------------------------------------------------------</code><li class="L4"><code class="php">// | End of ImportSql class</code><li class="L5"><code class="php">// &#43;------------------------------------------------------------------------------------------</code><li class="L6"><code class="php"></code><li class="L7"><code class="php"></code><li class="L8"><code class="php">/**</code><li class="L9"><code class="php">* This is a example.</code><li class="L0"><code class="php">*/</code><li class="L1"><code class="php"></code><li class="L2"><code class="php">header("Content-type:text/html;charset=utf-8");</code><li class="L3"><code class="php"></code><li class="L4"><code class="php">$sql = new ReadSql("localhost", "root", "", "log_db");</code><li class="L5"><code class="php"></code><li class="L6"><code class="php">$rst = $sql->Import("./log_db.sql");</code><li class="L7"><code class="php"></code><li class="L8"><code class="php">if ($rst) </code><li class="L9"><code class="php">{</code><li class="L0"><code class="php">   echo "Success!";</code><li class="L1"><code class="php">}</code><li class="L2"><code class="php"></code><li class="L3"><code class="php">// &#43;------------------------------------------------------------------------------------------</code><li class="L4"><code class="php">// | End of file ImportSql.php</code><li class="L5"><code class="php">// &#43;------------------------------------------------------------------------------------------</code><li class="L6"><code class="php">// | Location: ./ImportSql.php</code><li class="L7"><code class="php">// &#43;------------------------------------------------------------------------------------------</code>
登录后复制
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号