php代码片段


功能:同步,避免因并发访问而产生的冲突。
说明:某些操作耗时较长并只能允许一个用户操作,如:配置文件夹的恢复
代码片段:
    private static $locked = false;    //锁定标志
    function isLocked()
    {
        if(self::$locked != true)
        {
            $fp = fopen($this->strLockFile,"w");
            self::$locked = flock($fp, LOCK_EX); // 进行排它型锁定
        }
        return self::$locked;
    }
用法:将以上代码放入类中,当然也可稍加修改后,用于任何地方,调用isLocked函数后如返回值为true,则表示没有其它用户在使用相应操作,否则表示其它用户在使用该操作。
附注:我无法对以上代码进行严格测试,对web访问的并发亦无深刻理解,只是个人认会起同步作用。


功能:mysql数据库的备份
说明:使用mysqldump工具进行备份
代码片段:
                            $strFullPathname = ?;          //备份文件的路径名
                            $mysqlbin = ?;                        //mysqldump命令文件所在路径
                            $user = ?;                                //登录数据库的用户名称
                            $password = ?;                      //登录数据库的用户密码
                            $arrDBName = array(?);       //要备份的数据库名称
                            $arrIgnoreTable = array();    //要忽略的表格名称(库名.表名)
                           
                            //命令字符中备份指定数据库的语句部分
                            $strDBNames = implode(' ', $arrDBName);
                            //命令字符中忽略指定表格的语句部分
                            foreach($arrIgnoreTable as $key=>$value)
                                if($value)
                                    $arrIgnoreTable[$key] = " --ignore-table=$value ";
                            $strIgnoreTables = implode(' ', $arrIgnoreTable);
                             //命令
                            $strCmd = $mysqlbin."mysqldump --user=$user --password=$password --opt --allow-keywords --lock-all-tables --databases $strDBNames $strIgnoreTables > $strFullPathname";
                            $arrOutput = array();
                            $nRetcode = 0;
                            //执行备份命令。备份成功nRetcode为0,否则为其它值,错误信息在$arrOutput中。
                            exec($strCmd, $arrOutput, $nRetcode);

///
功能:mysql数据库的还原
说明:将使用mysqldump备份的数据库恢复
代码片段:
                            $strFullPathname = ?;          //备份文件的路径名
                            $mysqlbin = ?;                        //mysql程序文件所在路径
                            $user = ?;                                //登录数据库的用户名称
                            $password = ?;                      //登录数据库的用户密码
                           
                             //命令
                            $strCmd = $mysqlbin."mysql --user=$user --password=$password < $strFullPathname";
                            $arrOutput = array();
                            $nRetcode = 0;
                            //执行还原命令。还原成功nRetcode为0,否则为其它值,错误信息在$arrOutput中。
                            exec($strCmd, $arrOutput, $nRetcode);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值