-
1:ID:bc6v.t · 2019-02-05

#php PHPでアップロードしたCSVがデータベースにデータを挿入する処理を作成したのですが、
挿入データのパターンに間違いがあることが分かり止めたいです。
しかし、一旦ブラウザのサブミットボタンを押すとブラウザを閉じても止まりません。
CSVも無限ではないのでいつかは止まるとは思いますが、
これを SSH内の KILLコマンド等で強制的に終了させる方法等はないでしょうか?

3 件の回答

2:ID:1xmHYR · 2019-02-05

データベースサーバ側の問題なので、サーバプロセス内で終了させる必要がありますが。bash KILLコマンドは使用しないでください(データベースが壊れるので)。

1. PostgreSQLであれば
SELECT * FROM pg_stat_activity;
で、MySQLであれば
SHOW full processlist;
を使って、現在動作中のクエリを調べ、PHPから送り出したと思われるクエリのpidを取得する

2. PostgreSQLであれば
SELECT pg_cancel_backend(<実行中のpid>);
で、MySQLであれば
kill <実行中のpid>;
を使って、現在動作中のクエリのpidを停止する
※ MySQLの場合、kill コマンドは MySQLのDBに接続した状態で使うこと(bash KILLではない)

3:ID:LK0ldT · 2019-02-05

その読み込むPHPのスクリプト内でデータエラーを弾く処理を書くのが普通の対応。

4:ID:1xmHYR · 2019-02-05

Re:3
せやね。初段階のテストで失敗したのであれば2でいいけど、本番でやられたら溜まったものではない。早いうちにエラーハンドラ組み込んでおくのが上策だね。

コメントの受付は終了しました。

一緒に読まれている質問

ページ上部に戻る