Hej.
Łączę się do bazy Oracle używając:
$conn = oci_pconnect(...);
Od razu po połączeniu ustawiam:
$_SESSION["ora"] = $conn;
Dalej chcę mieć możliwość usunięcia rekordu z bazy korzystając z AJAX-a w JQuery. Wywołuję funkcję:
<span onclick="ajax_del_nam(1)">Usuń
</span>
która wygląda tak:
function ajax_del_nam(nam_id) {
$.ajax({
url: "jQ_ajax.php",
type: "POST",
data: {func: "del_nam",
id: nam_id
},
dataType: "text",
success: function(data,status) {
alert("Wpis usunięto.");
},
error: function(xhr, status, errorThr) {
alert("Jakiś błąd.\n\nxhr: "+xhr+"\nStatus: "+status+"\nerrorThr: "+errorThr);
}
});
}
W
jQ_ajax.php mam:
<?
function del_nam($id) {
if (!isset($_SESSION['ora']) or
$_SESSION['ora']==NULL) { log_me('del_nam:: Brak łącznika do bazy! $_SESSION["ora"]');
}
foreach ($_SESSION as $k => $v) {
log_me('$_SESSION["'.$k.'"] = '.$v);
}
$s = oci_parse($_SESSION['ora'],
"BEGIN
:out := pck.del(:id, :uid);
END;");
if (!$s) {
$e = oci_error($_SESSION['ora']);
log_me("Błąd parsowania (pck.del): ".$e["message"]);
log_me("Błąd parsowania (pck.del): ".$e["sqltext"]." at ".$e['offset']);
return -1;
}
else {
@oci_bind_by_name($s, ":id", $id);
@oci_bind_by_name($s, ":uid", $_SESSION['uid']);
@oci_bind_by_name($s, ":out", $out, 10);
if (!@oci_execute($s)) {
$m = oci_error($s);
log_me('del_nam', $m['message']);
}
else {
log_me("del_nam = ".$out);
}
}
}
//=====================================
switch ($_POST['func']) {
case 'del_nam': del_nam($_POST['id']); break;
};
?>
Niestety loguje mi się (funkcją
log_me) wpis o treści:
Cytat
$_SESSION["ora"] = 0
Nie wiem, czemu połączenie do bazy znikło.
Proszę o wskazówki...
Z góry dziękuję.
Ten post edytował Blackhole 28.06.2014, 09:25:36