У меня есть хранимая процедура в коде 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 ....».