同时执行两个查询插入和更新

时间:2013-10-27 09:06:17

标签: mysql sql

我想执行两个查询同时插入和更新查询当我使用更新查询时我的插入查询无效但更新查询工作请帮助解决此问题。

  <?php



    $con=mysqli_connect("localhost","root","","my");
   // Check connection
   if (mysqli_connect_errno())
   {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
     }
  $sql = "INSERT INTO `kyc`( `date`,`agentid`,`formno`, `bank`, `ptype`,
   `cardno`,      `cname`, `fname`, `mname`, `dob`, `phone`, `votarid`,`sex`, 
   `email`, `district`, `thana`)
   VALUES('$date','$agentid',$formno,'$bank','$ptype','$cardno','$cname','$fname',
    '$mname','$dob',$phone,$votarid,'$sex','$email','$district','$thana')";
    $sql="UPDATE card SET status='1'WHERE $cardno=`cardno`";
    $result = mysqli_query($con,$sql);

   echo "One raw Successfully inserted";




    mysqli_close($con);
   }
 ?>

4 个答案:

答案 0 :(得分:0)

您可以通过编写触发器来实现此目的。所以只要插入发生触发器就会执行。

这些链接将帮助您学习触发器 http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html http://net.tutsplus.com/tutorials/databases/introduction-to-mysql-triggers/

如果您确实希望执行更新作为查询,可以通过在插入查询结尾处添加;来尝试查询。

 $sql = "INSERT INTO `kyc`( `date`,`agentid`,`formno`, `bank`, `ptype`,
   `cardno`,      `cname`, `fname`, `mname`, `dob`, `phone`, `votarid`,`sex`, 
   `email`, `district`, `thana`)
   VALUES('$date','$agentid',$formno,'$bank','$ptype','$cardno','$cname','$fname',
    '$mname','$dob',$phone,$votarid,'$sex','$email','$district','$thana');";
                                                                         ^

答案 1 :(得分:0)

使用此:

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$sql_insert = "INSERT INTO `kyc`( `date`,`agentid`,`formno`, `bank`, `ptype`,
   `cardno`,      `cname`, `fname`, `mname`, `dob`, `phone`, `votarid`,`sex`, 
   `email`, `district`, `thana`)
   VALUES('$date','$agentid',$formno,'$bank','$ptype','$cardno','$cname','$fname',
    '$mname','$dob',$phone,$votarid,'$sex','$email','$district','$thana')";

$sql_update="UPDATE card SET status='1'WHERE $cardno=`cardno`";

$sql=$sql_insert.";".$sql_update;

$mysqli->multi_query($sql);

使用multi_query,您只需一句话即可运行多个查询。

查看:http://docs.php.net/mysqli.multi-query
了解更多信息!

答案 2 :(得分:0)

您正在尝试连续运行2个SQL语句:

第一个语句是INSERT,第二个是UPDATE。

目前您只执行UPDATE,因为您正在将$ sql重置为UPDATE语句而不先运行INSERT查询

你应该一个接一个地执行它们:

  

$ sql =“INSERT INTO kycdateagentidformnobankptype,   cardnocnamefnamemnamedobphone,   votaridsexemaildistrictthana
  VALUES( '$日期', '$的agentId',$ formno, '$银行', '$ p型', '$ cardno', '$ CNAME', '$ FNAME',        '$ MNAME', '$ DOB',$电话,$ votarid, '$性', '$电子邮件', '$区', '$坦纳')“;

     

$ result = mysqli_query($ con,$ sql); //检查错误

     

$ sql =“UPDATE卡SET状态='1'WHERE $ cardno = cardno”;

     

$ result = mysqli_query($ con,$ sql);

或用分号';'

分隔它们
  

$ sql =“INSERT INTO kycdateagentidformnobankptype,   cardnocnamefnamemnamedobphone,   votaridsexemaildistrictthana
  VALUES( '$日期', '$的agentId',$ formno, '$银行', '$ p型', '$ cardno', '$ CNAME', '$ FNAME',        '$ MNAME', '$ DOB',$电话,$ votarid, '$性', '$电子邮件', '$区', '$坦纳')“;

     

$ sql。=“; UPDATE卡SET状态='1'WHERE $ cardno = cardno”;

     

$ result = mysqli_query($ con,$ sql);

答案 3 :(得分:0)

你可以写下它们并分开;

   $con=mysqli_connect("localhost","root","","my");
   // Check connection
  if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
 }
 $sql_insert = "INSERT INTO `kyc`( `date`,`agentid`,`formno`, `bank`, `ptype`,
 `cardno`,      `cname`, `fname`, `mname`, `dob`, `phone`, `votarid`,`sex`, 
 `email`, `district`, `thana`)
 VALUES('$date','$agentid',$formno,'$bank','$ptype','$cardno','$cname','$fname',
'$mname','$dob',$phone,$votarid,'$sex','$email','$district','$thana')";

$sql_update="UPDATE card SET status='1'WHERE $cardno=`cardno`";

$ SQL = $ sql_insert。 “;” $ SQL_UPDATE;

  $result_insert = mysqli_query($con, $sql);


 echo "One raw Successfully inserted";




  mysqli_close($con);

}