如何在SqlSrv PHP中为EXEC设置TimeOut查询或存储过程
因为我使用PHP来调用SQL-Server存储过程。
前者
"EXEC SP_Name"
有时需要花费太长时间,因此PHP页面显示500内部服务器错误。
如果可以设置SP停止的时间限制,那么我会显示错误描述等...
我该如何解决这个问题?
先谢谢。
答案 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,它只适用于放置它的当前文件