Запрос на обновление на странице PHP не обновляет несколько строк, даже если сообщение об ошибке не получено - PullRequest
0 голосов
/ 17 октября 2019

Я обновляю две таблицы, используя страницу PHP. Первая таблица имеет одну строку для обновления, а вторая таблица имеет несколько строк, которые необходимо обновить в предложении where. Проблема в том, что первая таблица успешно обновляется, но вторая таблица не обновляется. хотя ошибки не получаются. Переменные в наборе и выражение where в выражении передаются с предыдущей страницы. Я использовал эхо в разных местах, чтобы проверить, правильно ли передаются значения. Хотя все выглядит хорошо, код не работает.

   <?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;
                }


 }

 ?>

1 Ответ

0 голосов
/ 17 октября 2019

Возможно, в вашей базе данных включена опция " safe updates ". Это предотвращает обновления строк без указанного первичного ключа.

В MySQL и Oracle (и, возможно, больше) это можно отключить с помощью: SET SQL_SAFE_UPDATES = 0;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...