0

我正在做一个项目,我需要通过 OpenEdge Progress 驱动程序使用 PHP ODBC 方法查询数据库。我需要一种方法来设置 MySQL 查询的超时,因此它比默认设置短得多(如果有的话)。

我尝试使用“odbc_setoption($stmt, 2, 0, 30)”,如下面的示例语句中所示...

  $stmt = odbc_prepare($this->odbc, $query);
  odbc_setoption($stmt, 2, 0, 30);//Set query timeout to 30 seconds.
  return odbc_execute($stmt);

但这失败了,因为不支持“0”作为查询超时的选项。我不知道这个数字,我尝试了一切,包括尝试在我的数据库连接 DSN 字符串和通过注册表中设置它。关于 PHP 中的变量名和/或选项号的任何想法?没人用这个东西...

谢谢

4

2 回答 2

2

您可以使用 SQL 脚本直接设置超时。

对于当前连接:

SET PRO_CONNECT QUERY_TIMEOUT n ; 

对于数据库直到正在运行:

SET PRO_SERVER QUERY_TIMEOUT n ;

http://documentation.progress.com/output/OpenEdge102b/pdfs/dmsrf/dmsrf.pdf 第58页

但那可能认识你;)

于 2012-04-19T19:09:44.047 回答
0

您是否尝试使用ADOdb而不是使用本机 php odbc 支持?

于 2012-04-19T01:54:48.033 回答