Ich habe Probleme mit einer langsame Abfrage, die mehr als 30 Sekunden zur Ausführung benötigt, möchte ich daher meine sqlsrv_query Timeout erhöhen.Ändern von QueryTimeout von sqlsrv_query
Fatal error: Maximum execution time of 30 seconds exceeded
Ich habe Probleme mit meiner PHP-Syntax, wie die Beispiele an: http://php.net/manual/en/function.sqlsrv-query.php nicht wirklich Sinn für mich haben.
Derzeit meine Verbindung/Setup sieht wie folgt aus:
$testServer = 'IP\servername,PORT';
$testDetails = array('Database' => 'DBNAME', 'UID' => 'USERNAME', 'PWD' => 'Password');
$testConnect = sqlsrv_connect($testServer, $testDetails);
Mein Verständnis ist, dass ich die timout Details durch als Parameter innerhalb sqlsrv_connect
übergeben müssen, aber ich bin nicht meine Syntax richtig hinzubekommen.
(ich habe die Abfrage so viel optimiert, wie ich kann leider das Design der db-Tabelle I nicht in der Lage bin, um es konsequent in weniger als 30 Sekunden zurück.)
Vielen Dank für die umfassende Antwort! (einschließlich des Syntax-Bits sqlsrv_query) Ich habe meine php.ini geändert und mein Problem wurde gelöst. – BernardV
Das "array (" QueryTimeout "=> 30)" löste ein ähnliches Problem für mich. Vielen Dank. – luisdev
Hinzufügen von set_time_limit (300); zu dem PHP-Code, der eine teure Datenbankabfrage ausführte, war ein Workaround, der ein anderes ähnliches Timeout-Problem behob, das ich in einem PHP-Skript auf einem langsamen, alten und mürrischen Server hatte. – luisdev