php-sqlsrv/test/functional/pdo_sqlsrv/pdo_query_timeout.phpt

68 lines
1.8 KiB
Plaintext
Raw Normal View History

2017-03-08 01:47:38 +01:00
--TEST--
2017-03-08 02:25:39 +01:00
test query time out at the connection level and statement level
2017-03-08 01:47:38 +01:00
--SKIPIF--
<?php require('skipif_mid-refactor.inc'); ?>
2017-03-08 01:47:38 +01:00
--FILE--
<?php
require_once("MsCommon_mid-refactor.inc");
2017-03-08 01:47:38 +01:00
2017-11-04 01:01:09 +01:00
function queryTimeout($connLevel)
2017-03-08 01:47:38 +01:00
{
$conn = connect('', array(), PDO::ERRMODE_SILENT);
$tableName = getTableName();
createTable($conn, $tableName, array("c1_int" => "int", "c2_varchar" => "varchar(25)"));
insertRow($conn, $tableName, array("c1_int" => 1, "c2_varchar" => "QueryTimeout 1"));
insertRow($conn, $tableName, array("c1_int" => 2, "c2_varchar" => "QueryTimeout 2"));
2017-03-08 01:47:38 +01:00
$query = "SELECT * FROM $tableName";
if ($connLevel) {
2017-03-08 01:47:38 +01:00
echo "Setting query timeout as an attribute in connection\n";
$conn->setAttribute(constant('PDO::SQLSRV_ATTR_QUERY_TIMEOUT'), 1);
$stmt = $conn->query("WAITFOR DELAY '00:00:03'; $query");
var_dump($conn->errorInfo());
} else {
2017-03-08 01:47:38 +01:00
echo "Setting query timeout in the statement\n";
$stmt = $conn->prepare("WAITFOR DELAY '00:00:03'; $query", array(constant('PDO::SQLSRV_ATTR_QUERY_TIMEOUT') => 1));
$stmt->execute();
var_dump($stmt->errorInfo());
}
dropTable($conn, $tableName);
unset($stmt);
unset($conn);
2017-03-08 01:47:38 +01:00
}
echo "Starting test...\n";
try {
2017-11-04 01:01:09 +01:00
queryTimeout(true);
queryTimeout(false);
} catch (Exception $e) {
echo $e->getMessage();
}
echo "Done\n";
2017-03-08 01:47:38 +01:00
?>
--EXPECTREGEX--
Starting test\.\.\.
2017-03-08 01:47:38 +01:00
Setting query timeout as an attribute in connection
array\(3\) \{
\[0\]=>
string\(5\) \"HYT00\"
\[1\]=>
int\(0\)
\[2\]=>
string\(63\) \"\[Microsoft\]\[ODBC Driver 1[1-9] for SQL Server\]Query timeout expired\"
\}
2017-03-08 01:47:38 +01:00
Setting query timeout in the statement
array\(3\) \{
\[0\]=>
string\(5\) \"HYT00\"
\[1\]=>
int\(0\)
\[2\]=>
string\(63\) \"\[Microsoft\]\[ODBC Driver 1[1-9] for SQL Server\]Query timeout expired\"
\}
2017-03-08 01:47:38 +01:00
Done