我有一個IOS應用程序,它將調用apche2服務器上的php文件並將查詢發送到mysql服務器(所有這些都在我的Mac OS X本地運行) 。如果我在打開應用程序後立即提交數據,那麼一切都很順利。我可以插入一個新的日誌到MySQL服務器。但是,如果我保持我的應用程序開放15-60分鐘(隨機),我的應用程序仍然工作正常,但MySQL不會響應PHP了。應用程序運行一段時間後,Php無法連接到mysql
這裏是我的目標C代碼的一部分我的應用程序(我不認爲這裏有任何問題)
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@/database.php", httpPath]];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
NSDictionary *params = @{@"jwt": user.jwt, @"mysqlCommand" : mysqlCommand};
[urlRequest setHTTPMethod:@"POST"];
NSError *error;
[urlRequest setHTTPBody:[NSJSONSerialization dataWithJSONObject:params options:kNilOptions error:&error]];
這裏是一個執行查詢的PHP代碼部分
$conn=new PDO('mysql:host=localhost;dbname=something_db',$reader->db_username,$reader->db_password,array(
PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,
));
$stmt=$conn->prepare($sqlStr);
$stmt->execute($params);
我已經注意到從我的apache錯誤日誌爲php服務器,php文件確實被稱爲因爲每當這個database.php被調用時會出現這樣的錯誤(稍後將試圖解決這個問題)
[週五11年2月17日:13:31.349827 2017] [:錯誤] [PID 21764] [客戶端 172.16.4.186:52869] PHP堆棧跟蹤:[星期五11年2月17日:13:31.349856 2017] [ :錯誤] [PID 21764] [客戶端172.16.4.186:52869] PHP 1 {主}() /Library/WebServer/Documents/mobile/database.php:0
然而MySQL一般日誌內, 在此期間沒有建立連接。 在哪裏如果我打開後立即運行程序,就會出現類似這樣的情況。
時間戳,線程,命令類型,詳細 2017年2月17日10:23:10.183493,237,查詢,INSERT INTO日誌(USER_ID,類別,操作,應用程序)VALUES( 'ABC','登錄」,‘登錄進食堂’,‘CAFE’)
我還沒有一個系統之前,PHP的學習,所以我不熟悉它的任何的設置,在所有所以我認爲這將是安全的你假設我只是在mac OS X上爲我的php服務器使用默認設置。
我在想現在,如果是由於會話問題,用於php服務器上的GC系統。任何人都有任何線索我的PHP服務器出了什麼問題,所以它不會發送查詢它想要做什麼?
這是創建每次執行的連接的代碼?您可能想要打開一個連接並重新使用它;如果它爲每個查詢創建新的,你最終會達到服務器連接限制(特別是如果它們沒有正確處理) –
是的。實際上每次都會調用整個database.php文件。但是每當sql響應時它都會被殺死。這可能是一個問題嗎? – n4feng