Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP uruchomienie procedury składowanej bez czekania na resultat
Forum PHP.pl > Forum > PHP
exaybachay
Witam.
Jak uruchomić procedurę składowaną z poziomu php tak żeby została
uruchomiona, ale żeby php nie czekało na rezultat wykonania procedury.

Z góry dziękuję za pomoc.
qwerty1440
nie da sie
zegarek84
odpal procedurę w innym pliku php, na początku daj:
ignore_user_abort(true);
potem z poziomu skryptu wywołaj go np tak:
  1. $fp = fsockopen($host, 80, $errno, $errstr, 30);
  2. if (!$fp) {
  3. echo "$errstr ($errno)<br />\n";
  4. } else {
  5. $out = "GET ".$scierzkaHTTP_bez_hosta." HTTP/1.1\r\n";
  6. $out .= "Host: ".$host."\r\n";
  7. $out .= "Connection: Close\r\n\r\n";
  8. fwrite($fp, $out);/*
  9. while (!feof($fp)) { //w zasadzie to nie musisz czekać na odpowiedź - ale w drugim pliku mogłeś wysłać chociarz nagłówki i tam zamknąć połączenie po czym wykonać to co masz wykonać
  10.   echo fgets($fp, 1); //jak zdanie wyżej - w sumie while może być odkomentowane - zamknij połączenie lepiej w drugim pliku zamiast zrywać za wczasu ale jak wolisz...
  11. }*/
  12. fclose($fp);//a tu zamknięte połączenie po stronie tego skryptu
  13. }


edit na początku drugiego pliku możesz dać np.:
  1. echo 'cokolwiek lub nic';
  2.  
  3.  
  4. header('Content-Type: text/html; charset=utf-8');
  5. header('Connection: close');
  6. header('Content-Language: pl');
  7. header('Content-Length: '.ob_get_length());
  8. header('Pragma: public');
  9. header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past
  10. header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
  11. header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
  12. header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
  13. header ('Pragma: no-cache');
  14. header('Expires: 0');
  15.  
  16. // a tu połączenie już zamknięte jest i rób cokolwiek - tak więc ten plik możesz też z przeglądarki odpalić i i on sobie spokojnie swoje będzie robił - a ze skryptu powyższego fragment odpowiedzi mógłbyś odebrać po czym sam zamknąć połączenie - bo odpowiedź dostaniesz od razu zanim skrypt skończy się wykonywać - niżej własciwa część na którą nie chcesz czekać....
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.