设置MySQLi查询执行的超时

时间:2015-11-24 06:51:46

标签: php mysql mysqli timeout

我正在探索在PHP和MySQLi中设置超时/停止特定查询的可能性。

来自 php.net 的稍微修改过的示例:

if ($stmt = $mysqli->prepare("INSERT NESTED MYSQL QUERY HERE.")) {
    $stmt->bind_param("s", $city);
    $stmt->execute();
    $stmt->set_timeout("50000"); //hypothetical, will not work
    $stmt->bind_result($district);
    while($stmt->fetch()){ 
        //to do
    }
}
$mysqli->close();

这可能吗?

理想的实施:

  1. 内部PHP代码,而不是通过配置MySQL服务器
  2. 只能针对选定的查询实施,而不能针对所有查询实施
  3. 在MySQL 5.6及更高版本
  4. 上工作(至少)
  5. 可以通知最终用户,例如
  6.   

    这个过程比预期花了很长时间。尝试将数据集拆分为   段。

1 个答案:

答案 0 :(得分:0)

参考此

http://mysqlserverteam.com/server-side-select-statement-timeouts/

对于只读SELECT语句

SELECT 
MAX_STATEMENT_TIME = 2000 --in milliseconds
* 
FROM table;