PHP页面中的更新查询不会更新多行,即使没有收到错误消息

PHP页面中的更新查询不会更新多行,即使没有收到错误消息,php,oracle11g,Php,Oracle11g,我正在使用PHP页面更新两个表。第一个表有一行要更新,第二个表有多行要在where子句上更新。问题是第一个表正在成功更新,但第二个表没有更新。虽然没有收到任何错误。set中的变量和语句中的where子句是从上一页传递过来的。我在不同的地方使用了echo来检查值是否正确传递。尽管一切看起来都很好,但代码仍然不起作用 <?php include 'Millsdbconnection_test.php'; date_default_timezone_set("Asia/Kolkata"

我正在使用PHP页面更新两个表。第一个表有一行要更新,第二个表有多行要在where子句上更新。问题是第一个表正在成功更新,但第二个表没有更新。虽然没有收到任何错误。set中的变量和语句中的where子句是从上一页传递过来的。我在不同的地方使用了echo来检查值是否正确传递。尽管一切看起来都很好,但代码仍然不起作用

   <?php
 include 'Millsdbconnection_test.php';
 date_default_timezone_set("Asia/Kolkata");
 session_start();
$var_value = $_POST['dsg'];
$var_value1 = $_SESSION['Heat'];
echo $var_value;
echo $var_value1;
insert_billet($var_value,$var_value1);
function insert_billet($dsg,$HeatId){
include 'Millsdbconnection_test.php';
$dsg2=$dsg;
$HeatId2=$HeatId;
$sql = 'update stg_bil_layer set STEEL_GRADE_ID= :xx where heat_id= :yy';
$query = oci_parse($c,$sql);            
oci_bind_by_name($query, ':xx', $dsg);
oci_bind_by_name($query, ':yy', $HeatId);
            oci_execute($query);
            if (!oci_execute($query) ){
                $errd=oci_error($query);
                trigger_error('Query failed: ' 
      .$errd['message'],E_USER_ERROR);
            }       

                echo 'Here';
                echo $dsg2;
                echo '<br>';
                echo $HeatId2;
                $sql2 = 'update stg_billet set STEEL_GRADE_ID=:aa where 
    heat_id=:bb';
                $query2= oci_parse($c,$sql2);
                oci_bind_by_name($query2, ':aa', $dsg2);
                oci_bind_by_name($query2, ':bb', $HeatId2);
                oci_execute($query2);

                if (!oci_execute($query2) ){
                    $errd=oci_error($query2);
                    trigger_error('Query failed: ' 
      .$errd['message'],E_USER_ERROR);
                }else{
                    echo "<script type='text/javascript'>
                window.onload = function () { alert('Steel Grade Updated 
      !!!!'); }
                    </script>";
                    //echo $count;
                }


 }

 ?>
您可以在数据库上启用“安全更新”选项。这将防止在没有指定主键的情况下更新行


在MySQL和Oracle(可能还有更多)中,这可以通过以下方式禁用:
SET SQL\u SAFE\u UPDATES=0

现在发生了哪个错误?请上传错误截图。我已经发布了我的代码。实际上没有错误,只是第二个更新查询没有给出任何结果。@ravipandey第一个问题是每个查询执行两次。当您选中
if(!oci_execute($query))
时,您执行的查询与前一行相同。我会删除第一次和第二次查询之前的调用。但这对我来说一直都很有效,而且在任何情况下,第一次查询都成功地更新了第一个表,问题只在于第二次查询。很抱歉,我没有提前添加代码。您可以看到有两个更新查询。第一个正在成功执行,而第二个未成功执行。