次のようなクエリを実行すると、次のようになります。
$query = "SELECT * FROM table";
$result = odbc_exec($dbh, $query);
while ($row = odbc_fetch_array($result)) {
print_r($row);
}
$ resultに保存されているリソースは、phpを実行しているサーバーに存在するデータを指していますか?または、データベース内のデータを指していますか?別の言い方をすれば、whileループはそれを行うので、PHPは反復ごとにDBと通信しているのでしょうか、それともアプリケーション側のソースからその$行をプルしているのでしょうか。
これが私にとって重要なのは、PHPでODBCを使用してVPN経由で話しているデータベースがあることです。この先週末、whileループ中に大きな一時停止が発生しているという奇妙なことが起こりました。したがって、反復の合間に、スクリプトは数秒から最大数分間実行を停止します。これが発生する場所は完全にランダムのようです。反復ごとにVPN経由でサーバーと通信する必要があるのか、接続が不安定なのか、またはODBCドライバー(FreeTDS)に問題が発生しているのか疑問に思っています。