如何设置TimeOut以执行PHP Sqlsrv中的查询

时间:2018-02-01 11:34:21

标签: php sql-server sqlsrv

如何在SqlSrv PHP中为EXEC设置TimeOut查询或存储过程

因为我使用PHP来调用SQL-Server存储过程。

前者

"EXEC SP_Name"

有时需要花费太长时间,因此PHP页面显示500内部服务器错误。

如果可以设置SP停止的时间限制,那么我会显示错误描述等...

我该如何解决这个问题?

先谢谢。

2 个答案:

答案 0 :(得分:0)

在你的php.ini文件集中

var express = require('express');
var bluebird = require('bluebird')
const bodyParser = require('body-parser');
const cors = require('cors');

/*initializations*/
global.mongoose = require('mongoose');
mongoose.Promise = bluebird
global.app = express();
global.config = require('./config/config');
global.jwt = require('jsonwebtoken');
app.use(bodyParser.json({ type: 'application/json' }))
app.use(bodyParser.urlencoded({ extended: true }));//accept strings, arrays   and any other type as values
app.disable('x-powered-by');

require('./routes/auth.routes');

//DB connection
app.listen(config.port, function(){
 console.log("Express started on " +config.base_url +' in '+config.env +' environment. Press Ctrl + C to terminate');
 mongoose.connect(config.db.uri, config.db.options)
 .then(()=> { console.log(`Succesfully Connected to the Mongodb Database  at URL : `+config.db.uri)})
 .catch((error)=> { console.log(error)})
});

有关详细信息,请参阅此Link

答案 1 :(得分:0)

@Jayasurya Satheesh的答案是指任何php执行时间的时间,但不是db查询执行时间。实际上,php缺乏一种简单的方法来控制db查询的执行时间。

在DB / SQL设置方面更多。如果您可以在SQL Server端定义TimeOut,则会返回" timeout"到PHP。

无论如何,你可以定义set_time_limit(25)(其中25是你想要的秒数),你可以在你的SQL EXEC之前将它放在你的PHP代码中,如果你想set_time_limit,则不需要处理php.ini特定的php文件。因此,如果查询超过25秒,php将停止执行。

请记住set_time_limit()不会影响其他php scritps,它只适用于放置它的当前文件