2011-02-08 86 views
0

我一直在尝试使用mysqli_multi_query一次更新多个表行。我发现这个函数总是会导致除1行之外的所有行的更新。例如,如果我有5行数据被指定要更新,那么实际上只更新4行。即使当我将行数增加到6或7等时,实际上只更新了'n-1'行('n'是我指定要更新的数字)。mysqli_multi_query函数不更新数据库中的所有表行

一些代码低于:

<?php $jag = mysqli_connect($host, $user, $pass, $db); // connects to the database 

      /* check connection */ 
      if (mysqli_connect_errno()) { 
       printf("Connect failed: %s\n", mysqli_connect_error()); 
       exit(); 
      } 


          $query2 .= "UPDATE inst_prod_stor SET age_type = '2' WHERE payer_mail = '$pmail' AND file_name = '$fname';"; 

      print_r($query2); 



      // execute the 'update' multi query 
      $result2 = mysqli_multi_query($jag, $query2) or die(mysqli_error($jag)); 

      mysqli_close($jag); ?> 

我还检查了我的网页的源代码后,我执行该cotains这个代码的PHP文件,它是好的。我没有收到任何错误。我实际上使用'print_r'函数来检查'mysqli_multi_query'函数执行之前没有数据被遗漏。事实上,没有数据被遗漏。每次执行代码时,函数的结果几乎都是完美的。唯一的缺陷是表格的一行永远不会更新。每次都是不同的行。

我真的需要这方面的帮助,它几乎是2或3周编程旅程的最后一站,然后才完成我目前正在开发的项目。谢谢!

回答

0

使用mysql_real_escape_string和删除.近$ QUERY2

$pmail = mysql_real_escape_string($pmail); 
$fname= mysql_real_escape_string($fname); 

    $query2 = "UPDATE inst_prod_stor SET age_type = '2' WHERE payer_mail = '$pmail' AND file_name = '$fname';"; 
相关问题