mysql 的事务处理代码

 更新时间:2016年11月25日 15:56  点击:1476
实现事务处理数据 PHP代码,其实也可以讲是mysql 的事务处理代码了。

public function insertUser ($userArray){
foreach ($userArray as $key => $value) {
@$field .= "$key,";
@$content .= "'$value',";
}
$field = ereg_replace(',$', '', $field);
$content = ereg_replace(',$', '', $content);

$db = db_connect(); //连接数据库教程

$db->autocommit(FALSE); //设置为非自动提交——事务处理

$sql1 = "INSERT INTO t_user (".$field.") VALUES (".$content.")";
$result1 = $db->query($sql1);

$sql2 = "INSERT INTO t_userpost (f_username) VALUES ('".$userArray['f_username']."')";
$result2 = $db->query($sql2);

if ($result1 && $result2) {
$db->commit(); //全部成功,提交执行结果
echo '提交';
} else {
$db->rollback(); //有任何错误发生,回滚并取消执行结果
echo '回滚';
}
$db->close();
}

我们会用到commit提供事务与rollback来回滚失败的事情。

图表库
下面的类库可以让你很简单就能创建复杂的图表和图片。当然,它们需要GD库的支持。
pChart - 一个可以创建统计图的库。
Libchart - 这也是一个简单的统计图库。
JpGraph - 一个面向对象的图片创建类。
Open Flash Chart - 这是一个基于Flash的统计图。
RSS 解析
解释RSS并是一件很单调的事情,不过幸好你有下面的类库可以帮助你方便地读取RSS的Feed。
MagpieRSS - 开源的PHP版RSS解析器,据说功能强大,未验证。
SimplePie - 这是一个非常快速,而且易用的RSS和Atom 解析库。
缩略图生成
php教程Thumb - 功能很强大,如何强大还是自己去体会吧。
支付
你的网站需要处理支付方面的事情?需要一个和支付网关的程序?下面这个程序可以帮到你。
PHP Payment Library - 支持Paypal, Authorize.net 和2Checkout (2CO)
OpenID
PHP-OpenID - 支持OpenID的一个PHP库。OpenID是帮助你使用相同的用户名和口令登录不同的网站的一种解决方案。如果你对OpenID不熟悉的话,你可以到这里看看:http://111cn.net/
数据为抽象/对象关系映射ORM
ADOdb - 数据库教程抽象
Doctrine - 对象关系映射Object relational mapper (ORM) ,需要 PHP 5.2.3+ 版本,一个非常强大的database abstraction layer (DBAL).
Propel - 对象关系映射框架- PHP5
Outlet - 也是关于对象关系映射的一个工具。
注:对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。这也同时暗示者额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。
PDF 生成器
FPDF - 这量一个可以让你生成PDF的纯PHP类库。
Excel 相关
你的站点需要生成 Excel?没有问题,下面这两个类库可以让你轻松做到这一点。
php-excel - 这是一个非常简单的Excel文件生成类。
PHP Excel Reader - 可以解析并读取XLS文件中的数据。
E-Mail 相关
不喜欢PHP的mail函数?觉得不够强大?下面的PHP邮件相关的库绝对不会让你失望。
Swift Mailer - 免费的超多功能的PHP邮件库。
PHPMailer - 超强大的邮件发送类。
单元测试
如果你在使用测试驱动的方法开发你的程序,下面的类库和框架绝你能帮助你的开发。
SimpleTest - 一个PHP的单元测试和网页测试的框架。
PHPUnit - 来自xUnit 家族,提供一个框架可以让你方便地进行单元测试的案例开发。并可非常容易地分析其测试结果。

//方法一

function   deltree($dirList){  
  chdir($dirList);  
  $handle=opendir('.');  
  while   (($file=readdir($handle))<>"")   {  
  if(is_file($file))  
  unlink($file);  
  if(is_dir($file)   &&   $file<>"."   &&   $file<>".."){  
  deltree($file);  
  chdir('..');  
  rmdir($file);  
  }  
  }  
  closedir($handle);    
  }  
  deltree('test');  
 
//方法二
function deldir($dirList)
 {
  if(is_dir($dirList))
  {
   $rdirList = $dirList;
   if($dirListlist = scandir($rdirList))
   {
    array_shift($dirListlist);
    array_shift($dirListlist);
    foreach($dirListlist as $d){
     $rd = $rdirList.'/'.$d;
     if(isset($d) && is_file($rd)){ 
      unlink($rd);
     }else{
      $this->deldir($rd);
     }
    }  
    rmdir($rdirList);
   }else{
    return false;
   }
  }
     return true;
 }  
}

用了递归方法。

//来看二个实例

$dirList="www.111cn.net/"; //指定目录
deltree($dirList);

deldir($dirList);

 

//方法一

$dir="test";  
 function defiles( $dir )
 {
  $handle=opendir($dir);  
  while   (($file=readdir($handle))<>"")   {  
  if(is_file($file))  
  unlink($file);  
  }  
  closedir($handle); 
 }
 
 //方法二
 
function dir_clear($dir) {
    $directory = dir($dir);               
    while($entry = $directory->read()) {  
        $filename = $dir.'/'.$entry;      
        if(is_file($filename)) {         
            @unlink($filename);
        }
    }
    $directory->close();                 
    result();
}  

//用方法

$dir ="www.111cn.net/";
defiles($dir);
//用方法二删除目录所有文件
dir_clear($dir);

*/
$cn = mysql教程_connect('127.0.0.1','root','root') or die('database connect fail');
mysql_select_db('test',$cn);
mysql_query("set names 'gbk'");

/*
创建数据库教程
CREATE DATABASE `test` ;

创建数据表 test1

CREATE TABLE `test`.`test1` (
`id` INT( 4 ) NOT NULL AUTO_INCREMENT ,
`title` VARCHAR( 40 ) NULL DEFAULT '0',
`litpic` VARCHAR( 100 ) NULL DEFAULT '0',
PRIMARY KEY ( `id` )
) ENGINE = MYISAM

*/

$sql = "Select * from test1 ";
$query = mysql_query( $sql ) or die($sql);
if( mysql_num_rows( $query ) )
{
 while( $rs = mysql_fetch_array( $query ) )
 {
  $sql = "Delete from test1 where id=".$rs['id'];
  if( mysql_query( $sql ) )
  {
   if( defile( $rs['litpic'] ))
   {
    echo '删除图片文件失败';
   }
   else
   {
    echo '记录删除成功,并且删除了记录与相对应的图片或文件';
   }
   
  }
  else
  {
   echo '记录不存删除数据与图片失败';
  }
 }
}
else
{
 echo '没有记录';
}
/*
 @pare return
 #$url string
 删除文件
*/
function delfile($url)
{
 if( file_exists($url) && is_file( $url ) )
 {
  if( unlink( $url ) )
  {
   return true;
  }
  else
  {
   return false;
  }
 }
 else
 {
  return false;
 }
}

/*
本文章原创于www.111cn.net转载注明出处

[!--infotagslink--]

相关文章

  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • Windows批量搜索并复制/剪切文件的批处理程序实例

    这篇文章主要介绍了Windows批量搜索并复制/剪切文件的批处理程序实例,需要的朋友可以参考下...2020-06-30
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • BAT批处理判断服务是否正常运行的方法(批处理命令综合应用)

    批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。这篇文章主要介绍了BAT批处理判断服务是否正常运行(批处理命令综合应用),需要的朋友可以参考下...2020-06-30
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • PHP file_get_contents设置超时处理方法

    file_get_contents的超时处理话说,从PHP5开始,file_get_content已经支持context了(手册上写着:5.0.0 Added the context support. ),也就是说,从5.0开始,file_get_contents其实也可以POST数据。今天说的这篇是讲超时的,确实在...2013-10-04
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • MYSQL事务回滚的2个问题分析

    因此,正确的原子操作是真正被执行过的。是物理执行。在当前事务中确实能看到插入的记录。最后只不过删除了。但是AUTO_INCREMENT不会应删除而改变值。1、为什么auto_increament没有回滚?因为innodb的auto_increament的...2014-05-31
  • C#多线程中的异常处理操作示例

    这篇文章主要介绍了C#多线程中的异常处理操作,涉及C#多线程及异常的捕获、处理等相关操作技巧,需要的朋友可以参考下...2020-06-25
  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07