php-sqlsrv/test/functional/pdo_sqlsrv/pdo_065_construct_prefetch.phpt
2020-07-08 19:45:00 -07:00

45 lines
1.7 KiB
PHP

--TEST--
Test unsupported connection attribute ATTR_PREFETCH
--DESCRIPTION--
Exception is thrown for the unsupported connection attribute ATTR_PREFETCH only if it is set after PDO::ERRMODE_EXCEPTION is turned on
--SKIPIF--
<?php require('skipif_mid-refactor.inc'); ?>
--FILE--
<?php
require_once("MsSetup.inc");
require_once("MsCommon_mid-refactor.inc");
try {
echo "Testing a connection with ATTR_PREFETCH before ERRMODE_EXCEPTION...\n";
$dsn = getDSN($server, $databaseName, $driver);
// With PHP 8.0 the default is PDO::ERRMODE_EXCEPTION rather than PDO::ERRMODE_SILENT
if (PHP_MAJOR_VERSION == 8) {
$attr = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT, PDO::ATTR_PREFETCH => true);
} else {
$attr = array(PDO::ATTR_PREFETCH => true, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
}
$conn = new PDO($dsn, $uid, $pwd, $attr);
echo "Error from unsupported attribute (ATTR_PREFETCH) is silenced\n\n";
unset($conn);
echo "Testing a connection with ATTR_PREFETCH after ERRMODE_EXCEPTION...\n";
if (PHP_MAJOR_VERSION == 8) {
$attr = array(PDO::ATTR_PREFETCH => true);
} else {
$attr = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_PREFETCH => true);
}
$conn = new PDO($dsn, $uid, $pwd, $attr);
//free the connection
unset($conn);
} catch (PDOException $e) {
echo "Exception from unsupported attribute (ATTR_PREFETCH) is caught\n";
}
?>
--EXPECT--
Testing a connection with ATTR_PREFETCH before ERRMODE_EXCEPTION...
Error from unsupported attribute (ATTR_PREFETCH) is silenced
Testing a connection with ATTR_PREFETCH after ERRMODE_EXCEPTION...
Exception from unsupported attribute (ATTR_PREFETCH) is caught