以PostgreSQL为例,其它的数据库要视情况而定,因为有些数据库本身就不支持事务
<?php
 $query="INSERT INTO tablename(id,name) values(123,'name') ";   pg_exec("BEGIN WORK");
  $result=pg_exec($dblink,$query); 
  if (!$result || pg_cmdtuples($result)< 1) {
    pg_exec("ROLLBACK");
echo "<p><font size='+3' color='#ff0000'>操作失败!<br>请检查数据输入是否正确".pg_errormessage($dblink)."</font></p>"; 
echo "<a href=return.php>返回</a>";
    exit();}
  else{
    pg_exec("COMMIT");
echo "<p><font size='+3' color='#0000ff'>操作成功!</font></p>"; 
echo "<a href=return.php>返回</a>";

?>

解决方案 »

  1.   

    最简单的是用adodb提供的事务处理。
    把需要处理的代码都放在这两句话之间就行
    $conn->StartTrans();
    //需要事务处理的代码
    $conn->CompleteTrans();
      

  2.   

    事务只是数据库的事,不要拿PHP开涮
      

  3.   

    mysql 4.0 以上mysql_query("BEGIN"); //开始事务mysql_query("ROLLBACK"); //回滚mysql_query("COMMIT");  //提交
      

  4.   

    表的类型设置为innodb.不过我有点困惑的是数据不晓得放在哪里!