php代码片段
来源:互联网 发布:日本自卫队战斗力知乎 编辑:程序博客网 时间:2024/05/03 04:51
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
功能:同步,避免因并发访问而产生的冲突。
说明:某些操作耗时较长并只能允许一个用户操作,如:配置文件夹的恢复
代码片段:
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);
功能:同步,避免因并发访问而产生的冲突。
说明:某些操作耗时较长并只能允许一个用户操作,如:配置文件夹的恢复
代码片段:
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);
- php代码片段
- PHP-常用代码片段
- PHP代码片段
- PHP 常用代码片段
- PHP常用代码片段
- php 代码片段
- [php] 代码片段
- php 代码片段
- 【代码片段】php分页代码
- 10个PHP代码片段
- 实用的PHP代码片段
- PHP 常用的代码片段
- 一些实用PHP代码片段
- PHP之代码片段收集
- php生成印章 代码片段
- 10 个有用的 PHP 代码片段
- 10 个救命的 PHP 代码片段
- 10 个救命的 PHP 代码片段
- 佳能A75点测和闪光的运用-如何使前景和背景曝光正确
- 自己整理的一些分页存储过程
- LOG日志特别大,怎样"瘦身"
- C++模板代码的组织方式 ――包含模式(Inclusion Model)
- Apache服务的安全配置
- php代码片段
- 日期控件
- J2ME读取本地文件的方法
- 4月26日 改变了,累了,也收获了
- 使用EnentLog
- 基于组件的软件工程------软件开发中的新挑战
- 铜须事件的相关链接
- 秀秀我的初烧装备兼上听感
- 学术评价告别SCI?