added tests for different invalid options for pdo::prepare
This commit is contained in:
parent
83af4d0228
commit
3848c41108
36
test/pdo_sqlsrv/pdo_prepare_invalid_cursor.phpt
Normal file
36
test/pdo_sqlsrv/pdo_prepare_invalid_cursor.phpt
Normal file
|
@ -0,0 +1,36 @@
|
|||
--TEST--
|
||||
Test PDO::prepare by passing in invalid cursor value
|
||||
--SKIPIF--
|
||||
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
require_once("autonomous_setup.php");
|
||||
|
||||
try
|
||||
{
|
||||
$database = "tempdb";
|
||||
$conn = new PDO( "sqlsrv:Server = $serverName; Database = $database", $username, $password);
|
||||
//$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
|
||||
|
||||
// PDO::CURSOR_FWDONLY should not be quoted
|
||||
$stmt1 = $conn->prepare( "SELECT 1", array( PDO::ATTR_CURSOR => "PDO::CURSOR_FWDONLY" ));
|
||||
|
||||
// 10 is an invalid value for PDO::ATTR_CURSOR
|
||||
$stmt2 = $conn->prepare( "SELECT 2", array( PDO::ATTR_CURSOR => 10 ));
|
||||
|
||||
if ( $stmt1 || $stmt2 )
|
||||
{
|
||||
echo "Invalid values for PDO::ATTR_CURSOR should return false.\n";
|
||||
} else {
|
||||
echo "Invalid values for PDO::ATTR_CURSOR return false.\n";
|
||||
}
|
||||
}
|
||||
catch( PDOException $e ) {
|
||||
var_dump( $e->errorInfo );
|
||||
}
|
||||
?>
|
||||
|
||||
--EXPECT--
|
||||
|
||||
Invalid values for PDO::ATTR_CURSOR return false.
|
36
test/pdo_sqlsrv/pdo_prepare_invalid_encoding.phpt
Normal file
36
test/pdo_sqlsrv/pdo_prepare_invalid_encoding.phpt
Normal file
|
@ -0,0 +1,36 @@
|
|||
--TEST--
|
||||
Test PDO::prepare by passing in invalid encoding values
|
||||
--SKIPIF--
|
||||
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
require_once("autonomous_setup.php");
|
||||
|
||||
try
|
||||
{
|
||||
$database = "tempdb";
|
||||
$conn = new PDO( "sqlsrv:Server = $serverName; Database = $database", $username, $password);
|
||||
//$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
|
||||
|
||||
// PDO::SQLSRV_ENCODING_SYSTEM should not be quoted
|
||||
$stmt1 = $conn->prepare( "SELECT 1", array( PDO::SQLSRV_ATTR_ENCODING => "PDO::SQLSRV_ENCODING_SYSTEM" ));
|
||||
|
||||
// 10 is an invalid value for PDO::SQLSRV_ATTR_ENCODING
|
||||
$stmt2 = $conn->prepare( "SELECT 2", array( PDO::SQLSRV_ATTR_ENCODING => 10 ));
|
||||
|
||||
if ( $stmt1 || $stmt2 )
|
||||
{
|
||||
echo "Invalid values for PDO::SQLSRV_ATTR_ENCODING should return false.\n";
|
||||
} else {
|
||||
echo "Invalid values for PDO::SQLSRV_ATTR_ENCODING return false.\n";
|
||||
}
|
||||
}
|
||||
catch( PDOException $e ) {
|
||||
var_dump( $e->errorInfo );
|
||||
}
|
||||
?>
|
||||
|
||||
--EXPECT--
|
||||
|
||||
Invalid values for PDO::SQLSRV_ATTR_ENCODING return false.
|
36
test/pdo_sqlsrv/pdo_prepare_invalid_scrollable_cursor.phpt
Normal file
36
test/pdo_sqlsrv/pdo_prepare_invalid_scrollable_cursor.phpt
Normal file
|
@ -0,0 +1,36 @@
|
|||
--TEST--
|
||||
Test PDO::prepare by passing in invalid scrollable type value
|
||||
--SKIPIF--
|
||||
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
require_once("autonomous_setup.php");
|
||||
|
||||
try
|
||||
{
|
||||
$database = "tempdb";
|
||||
$conn = new PDO( "sqlsrv:Server = $serverName; Database = $database", $username, $password);
|
||||
//$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
|
||||
|
||||
// PDO::SQLSRV_CURSOR_BUFFERED should not be quoted
|
||||
$stmt1 = $conn->prepare( "SELECT 1", array( PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL, PDO::SQLSRV_ATTR_CURSOR_SCROLL_TYPE => "PDO::SQLSRV_CURSOR_BUFFERED" ));
|
||||
|
||||
// if ATTR_CURSOR is FWDONLY, cannot get SCROLL_TYPE
|
||||
$stmt2 = $conn->prepare( "SELECT 2", array( PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY, PDO::SQLSRV_ATTR_CURSOR_SCROLL_TYPE => PDO::SQLSRV_CURSOR_BUFFERED ));
|
||||
|
||||
if ( $stmt1 || $stmt2 )
|
||||
{
|
||||
echo "Invalid values for PDO::SQLSRV_ATTR_CURSOR_SCROLL_TYPE should return false.\n";
|
||||
} else {
|
||||
echo "Invalid values for PDO::SQLSRV_ATTR_CURSOR_SCROLL_TYPE return false.\n";
|
||||
}
|
||||
}
|
||||
catch( PDOException $e ) {
|
||||
var_dump( $e->errorInfo );
|
||||
}
|
||||
?>
|
||||
|
||||
--EXPECT--
|
||||
|
||||
Invalid values for PDO::SQLSRV_ATTR_CURSOR_SCROLL_TYPE return false.
|
47
test/pdo_sqlsrv/pdostatement_bindcolumn_odd_types.phpt
Normal file
47
test/pdo_sqlsrv/pdostatement_bindcolumn_odd_types.phpt
Normal file
|
@ -0,0 +1,47 @@
|
|||
--TEST--
|
||||
Test the bindColumn method using PDO::PARAM_NULL and PDO::PARAM_STMT
|
||||
--SKIPIF--
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
require_once("autonomous_setup.php");
|
||||
|
||||
try
|
||||
{
|
||||
$conn = new PDO( "sqlsrv:Server=$serverName; Database = tempdb ", $username, $password);
|
||||
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
|
||||
$conn->exec("IF OBJECT_ID('temptb', 'U') IS NOT NULL DROP TABLE temptb");
|
||||
$conn->exec("CREATE TABLE temptb(IntCol INT, CharCol NVARCHAR(20)) ");
|
||||
$conn->exec("INSERT INTO temptb (IntCol, CharCol) VALUES (10, 'ten')");
|
||||
|
||||
$stmt = $conn->prepare("SELECT IntCol FROM temptb");
|
||||
$stmt->execute();
|
||||
|
||||
// PARAM_NULL returns null
|
||||
$stmt->bindColumn('IntCol', $intCol, PDO::PARAM_NULL);
|
||||
$row = $stmt->fetch(PDO::FETCH_BOUND);
|
||||
if ($intCol == NULL) {
|
||||
echo "intCol is NULL\n";
|
||||
} else {
|
||||
echo "intCol should have been NULL\n";
|
||||
}
|
||||
|
||||
$stmt = $conn->prepare("SELECT CharCol FROM temptb");
|
||||
$stmt->execute();
|
||||
|
||||
// PARAM_STMT is not support and should throw an exception
|
||||
$stmt->bindColumn('CharCol', $charCol, PDO::PARAM_STMT);
|
||||
$row = $stmt->fetch(PDO::FETCH_BOUND);
|
||||
echo "PARAM_STMT should have thrown an exception\n";
|
||||
|
||||
}
|
||||
catch (PDOException $e)
|
||||
{
|
||||
print_r($e->errorInfo[2]);
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
intCol is NULL
|
||||
PDO::PARAM_STMT is not a supported parameter type.
|
Loading…
Reference in a new issue