Acemi Soru-

3 Cevap php

Birden sql komut yürüten bir PHP dosyası var. Ben ilk iki komut yürütmek bulabilirsiniz, ancak son iki tamamlamak gibi asla. Ben çalıştım, kendi PHP dosyaları ve komut tek tek son iki komut test, bu yüzden çünkü benim PHP komut yapıyorum exec sayısına () çağrılarının olmadığını merak ediyorum. Herhangi bir öneriniz? Burada orijinal senaryo:

<?php
session_start();

$host = "localhost"; 
$user = "user"; 
$pass = "pass"; 
$database = "database"; 

$linkID = mysql_connect($host, $user, $pass) or die("Could not connect to host."); 
mysql_select_db($database, $linkID) or die("Could not find database."); 


$query = sprintf("SELECT dbName FROM users where userName='%s'",
   $_SESSION['MM_Username']); 
$resultID = mysql_query($query) or die("Data not found."); 

list($dbName)= mysql_fetch_row($resultID);

exec("mysql -u user -ppassword ".$dbName." < ../scripts/makeTblFinalAnalysis.sql"); 
exec("mysql -u user -ppassword ".$dbName." < ../scripts/tblFinalDetailed.sql");
exec("mysql -u user -ppassword ".$dbName." < ../scripts/TblGridViews.sql");
exec("mysql -u user -ppassword ".$dbName." < ../scripts/makeTblGeo.sql");
header( 'Location: dashboards/dashboard.html' ) ;
exit;
?>

3 Cevap

Eğer yürütme zaman tükeniyor olabilir? Ne kadar komut çalıştırmak için alıyor?

PHP belgelerinde set_time_limit() Look up; Onlar çalıştırmak için bir süre alabilir eğer PHP yürütme zaman aşımı yükseltmek isteyeceksiniz.

"Ama son iki tamamlamak gibi asla." belki de ilk iki komut bazı kilitleri, üçüncü senaryo çıkmaza mı? Eğer başarıyla yürütür ve değişiklikler kararlı olup olmadığını kontrol etmek için SQL Server üzerinde birlikte bu betikleri hepsi 4 yürütmek için deneyebilirsiniz. Ayrıca sql sorguları gönderme yardımcı olabilir.

Kabuk içine tüm denetmen katılmak ve çalıştırmayı deneyin. Sonra arka planda çalıştırmayı deneyin. Ama sonra PHP komut dönüş için beklemek olmaz.

exec("nohup sqlRoutines.sh > /dev/null 2>&1 &");

Bu süreci çağıran komut dosyasını ayırmak ve hiçbir yerde stdout ve stderr'yi yönlendirme (ya da isterseniz ... logfile'a için) olacaktır.