![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
pcntl_fork()を利用して、子プロセスでファイル収集を行い、親プロセスがそのファイルを解析してDBへ登録するといった単純な2並列のプログラムを書いています。
ところが子プロセスが終了した時点でどうもmysqlのコネクションが切れてしまうようなのです。
以下は上記内容を再現した簡易コードです。
$connect = mysql_pconnect("localhost", "user", "password");
//parent
if ($pid = pcntl_fork()) {
// 本当はここで収集されたファイルを順次解析してDBに登録を行う。
sleep(5); // 子が先に終了するように時間差を。
mysql_query($query="use testdb",$session) || die(sprintf("%s : %s\n", $query, mysql_error()));
pcntl_wait($status);
//child
} else {
// 本当はここでファイルを収集する
sleep(1);
exit(0);
}
上記コードは以下のエラーを吐いて終了します。
use testdb : MySQL server has gone away
mysql_pconnectの代わりにmysql_connectを使ったり、mysql_queryの第二引数に$connectを与えても結果は変わりません。
子プロセスが終了してもmysqlとのコネクションを維持しておきたいのですが解決策はあるでしょうか。
ちなみにPHP CLIで実行しています。
OS: Linux
PHP 5.2.4
No.1ベストアンサー
- 回答日時:
親プロセスと子プロセスで同一のコネクションを使用している所に問題があると思います。
$connect = mysql_pconnect("localhost", "user", "password");
//parent
if ($pid = pcntl_fork()) {
:
:
//child
} else {
$connect = mysql_pconnect("localhost", "user", "password");
:
:
exit(0);
}
と、子プロセスは子プロセス側で別途コネクトして使用するか、
親、子、それぞれでDBにコネクトする必要があるかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのエラーについてです
-
Resource id #3 をフィールドの...
-
連想二次元配列のUNIXTIMEでの...
-
sprintf関数での%Sが分かりませ...
-
XAMMPが起動しません。
-
mysql_fetch_objectのエラー
-
リストから詳細画面に遷移する...
-
検索結果の分割表示時のSQLエラー
-
インクルードによる不具合
-
MySQLに登録したデータをPHPで...
-
"と'の使い方を教えていただけ...
-
これでSQLインジェクション対策...
-
PHP と Mysql の連携時に発生す...
-
MySQLへデータ入力時の文字化け
-
MYSQLと連動したBASIC認証について
-
PHPの記述で値が取れません。
-
DBから抜き出した値を表示する方法
-
SQL Serverからのvarchar型のデ...
-
php テーブルを作れない
-
例外処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpのエラーについてです
-
テーブルに入っているデータと...
-
sqlから多次元配列に要素を格納...
-
PHPで絞り込み検索結果の件数を...
-
MySQLのデータを使ってプルダウ...
-
XAMMPが起動しません。
-
mysql_fetch_objectのエラー
-
mysql_resultのエラー
-
CSVをダウンロードさせた際、CS...
-
stringaddslashes 半角¥が消える
-
「mysqlclient」の事が分からな...
-
XAMPPで画面が真っ白になります。
-
会員登録したらメールが送られ...
-
PHP+mysqlでSQL文に文字数制限...
-
連想二次元配列のUNIXTIMEでの...
-
PHP/MySQL SQLエラーについて。
-
変数同士の引き算が出来ない
-
PHPでMySQLのレコードを削除したい
-
すいません。
-
インクルードによる不具合
おすすめ情報