PHP-скрипт, который работал в фоновом режиме не работает - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь запустить php-скрипт на фоне, который содержит простой запрос вставки mysql. Но это не работает. И я работаю на машине Windows. Ниже приведен код для запуска фона скрипта.

function execInBackground($cmd){
    if (substr(php_uname(), 0, 7) == "Windows"){ 
        pclose(popen("start /B ". $cmd, "r"));  
    }else{ 
        exec($cmd . " > /dev/null &");   
    } 
}  
execInBackground('start cmd.exe @cmd /K php ping.php');

Я дал этому файлу имя файла как background.php, и я пытаюсь запустить файл через фоновый файл "ping.php". Который также был в том же каталоге. Ниже приведен URL, который я пытаюсь запустить на своем локальном хосте

http://localhost/adeptra/background.php

Где я делаю не так? Любая помощь будет принята с благодарностью

После отладки я обнаружил эту проблему в командной строке

PHP Fatal error:  Uncaught Error: Call to undefined function mysql_connect() in D:\xampp\htdocs\adeptra\ping.php:10
Stack trace:
#0 {main}
  thrown in D:\xampp\htdocs\adeptra\ping.php on line 10

Fatal error: Uncaught Error: Call to undefined function mysql_connect() in D:\xampp\htdocs\adeptra\ping.php:10
Stack trace:
#0 {main}
  thrown in D:\xampp\htdocs\adeptra\ping.php on line 10

D:\xampp\htdocs\adeptra>$conn = mysql_connect("localhost","root","");
'$conn' is not recognized as an internal or external command,
operable program or batch file.

I tried with mysql and mysqli both . Got same error 

1 Ответ

0 голосов
/ 15 ноября 2018

Можете ли вы проверить ниже код, это поможет вам.Это работа для меня.Вы можете проверить здесь же http://php.net/manual/en/function.popen.php

function execInBackground($cmd){
    if (substr(php_uname(), 0, 7) == "Windows"){ 
        $timer = popen("start /B ". $cmd, "r"); 
        sleep(15);
        pclose($timer);
    }else{ 
        exec($cmd . " > /dev/null &");   
    } 
}

execInBackground("php ping.php");
...