【发布时间】:2020-02-14 11:26:18
【问题描述】:
我正在使用 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;
}
}
?>
【问题讨论】:
-
现在出现哪个错误?请上传错误截图。
-
我已经发布了我的代码。实际上没有错误,只是第二个更新查询没有给出任何结果。
-
@ravipandey 第一个问题是您要执行每个查询两次。当您检查
if (!oci_execute($query) )时,您正在执行与前行相同的查询。我会先删除第一个和第二个查询的调用。 -
但这对我来说一直有效,无论如何第一个查询成功更新了第一个表,问题仅在于第二个查询。