質問: phpとmysqlの初心者の疑問 すいませんphpとmysqlの処理のしくみがわかってないです phpの処理の中でmysqlからselectで値を取得する場合 mysqlが大量のデータで処理に時間がかかった場合は、selectの処理に5秒くらいかかっても、phpの処理の中でそこで待ってくれているんですか? selectの処理が何秒かかったとしても終わってから次のphpの処理にいっているんですか? phpって速いのにmysqlのスピードが遅かったらちゃんと読み込まれないんじゃないかと心配になっています
回答: > selectの処理が何秒かかったとしても終わってから次のphpの処理にいっているんですか? はい。待ってくれます。 ただ、所定の時間返ってこないとタイムアウトになり、失敗を返してから次の処理に行きます。 もっと具体的に言うと、同期apiだと待ちます。非同期apiだと待ちません。 いずれの場合でも、意図に反してmysqlが結果を返さないのを無視して実行を進めることはありません。 非同期apiの場合は例えばこんなコードになるみたいです。 http://www.php.net/manual/ja/mysqli.poll.php pdoからは非同期apiは使えないようですが。 http://php.net/manual/ja/mysqlinfo.api.choosing.php