0

ODBC 接続を使用して SQL Server 2005 に接続するコマンドライン PHP スクリプトがあります。odbc_exec() を使用して、処理に時間がかかる可能性があるストアド プロシージャを実行しますが、タイムアウトさせたくありません。

odbc_exec() のタイムアウトを設定する方法に関する PHP のドキュメントを見つけることができませんでした。デフォルトで無限に待機しますか?

4

2 に答える 2

2

ここでできることは限られています。PHP のデフォルトのスクリプト実行時間は 30 秒に設定されています。これを変更するには、set_time_limit()関数 (マニュアルに記載されています) や、 を使用して実行時間を延長するini_setなど、さまざまな方法があります。odbc_setoption

//extend execution time
$num_minutes = 5;
ini_set('max_execution_time', (60*$num_minutes)); //set timeout to 5 minutes

php.ini ファイル内でこの設定を変更することもできます。ただし、これらはすべて、Apache サーバーが制御できる範囲内でしか制御できません。データベース自体にタイムアウトがある場合、個人的に設定した実行時間が長くなっても、呼び出しが中断されてエラーが返されます。

于 2013-03-07T18:08:57.170 に答える
1

php.net によると、次を使用できます odbc_setoption()

$result = odbc_prepare($conn, $sql);
odbc_setoption($result, 2, 0, 30);// 30 seconds timeout
odbc_execute($result);

したがって、必要に応じて、タイムアウトをより大きな数に増やすことができます

于 2013-03-07T18:04:31.597 に答える