Хранимая процедура не получает значение из банка данных и не отображает вывод в PHP - PullRequest
0 голосов
/ 23 января 2019

У меня есть хранимая процедура в коде PHP, которая должна принимать данные от пользователя на веб-странице. Чтобы быть конкретным номер продукта. Затем он должен получить доступ к моей таблице банка данных под названием Lieferung и вернуть стоимость доставки продукта. В банке данных нет дубликатов номера продукта. Следующее является частью моего кода, который относится к хранимой процедуре

 <div>
   <form id='searchabt' action='index.php' method='get'>
    Suche versandkosten zu bestimmter Produktnummer (PINr):
      <input id='PINR' name='PINR' type='text' size='20' value='<?php echo 
$_GET['PINR']; ?>' />
      <input id='submit' type='submit' value='Aufruf Stored Procedure!' />
  </form>
</div>

<?php
  //Handle Stored Procedure for lieferung
  if (isset($_GET['PINR']))
  {
      //Call Stored Procedure   
      $productnumber = $_GET['PINR'];
      $sch="SELECT versandkosten FROM lieferung  WHERE PINr like '%" . 
$_GET['PINR'] . "%'";
          $shippingcost = oci_parse($conn, $sch);
      oci_execute($shippingcost);   

      $sproc = oci_parse($conn, 'begin prod_ship(:p1, :p2); end;');
  //Bind variables, p1=input (productnumber), p2=output (shippingcost)
  oci_bind_by_name($sproc, ':p1', $productnumber);
  oci_bind_by_name($sproc, ':p2', $shippingcost, 20);
  oci_execute($sproc);
  $conn_err=oci_error($conn);
  $proc_err=oci_error($sproc);

  if(!$conn_err && !$proc_err){
     echo("<br><b>" . $productnumber . " hat das Versandkost von. " . 
$shippingcost. "</b><br>" );  // prints OUT parameter of stored procedure
  }
  else{
     //Print potential errors and warnings
     print($conn_err);
     print_r($proc_err);
  }  
}


  // clean up connections
  oci_free_statement($sproc);
  oci_close($conn);
?>

versandkosten - столбец с различными ценами. PINr - номер продукта.

Я выполнил оператор выбора SELECT versandkosten FROM lieferung WHERE PINr like [...] (фактическое значение PINr) в SQL, и он дал желаемый результат. Хотя я не знаю, почему в моем браузере ничего не появляется. Появляется только утверждение с действительным номером PINr «hat das Versandkost von ....».

...