2017-05-04 02:09:36 +02:00
|
|
|
--TEST--
|
|
|
|
Test output boolean parameters and casts to boolean types.
|
|
|
|
--DESCRIPTION--
|
|
|
|
This test verifies that output boolean parameters are read and set correctly and output
|
|
|
|
true or false as appropriate. The expected outputs consist of a true value as a bool,
|
|
|
|
false as a bool, a true value cast to a bool, a true value as an bool.
|
|
|
|
--ENV--
|
|
|
|
PHPT_EXEC=true
|
|
|
|
--SKIPIF--
|
2017-11-30 20:10:27 +01:00
|
|
|
<?php require('skipif_versions_old.inc'); ?>
|
2017-05-04 02:09:36 +02:00
|
|
|
--FILE--
|
|
|
|
<?php
|
2017-10-04 23:22:56 +02:00
|
|
|
require_once('MsCommon.inc');
|
2017-05-04 02:09:36 +02:00
|
|
|
|
2017-11-30 20:10:27 +01:00
|
|
|
$conn = AE\connect();
|
2017-05-04 02:09:36 +02:00
|
|
|
|
2017-12-05 18:26:54 +01:00
|
|
|
dropProc($conn, 'testBoolean');
|
2017-05-04 02:09:36 +02:00
|
|
|
|
|
|
|
$createSP = <<<SQL
|
|
|
|
CREATE PROCEDURE testBoolean
|
|
|
|
@bit_true bit OUTPUT, @bit_false bit OUTPUT, @bit_cast_true bit OUTPUT, @int_true bit OUTPUT
|
|
|
|
AS
|
|
|
|
BEGIN
|
|
|
|
SET @bit_true = 'true';
|
|
|
|
SET @bit_false = 'false';
|
|
|
|
SET @bit_cast_true = CAST('true' AS bit);
|
|
|
|
SET @int_true = 'true';
|
|
|
|
END
|
|
|
|
SQL;
|
|
|
|
|
|
|
|
$stmt = sqlsrv_query($conn, $createSP);
|
|
|
|
|
|
|
|
sqlsrv_free_stmt($stmt);
|
|
|
|
|
|
|
|
$callSP = "{call testBoolean(?, ?, ?, ?)}";
|
|
|
|
|
|
|
|
$bit_true = false;
|
|
|
|
$bit_false = false;
|
|
|
|
$bit_cast_true = false;
|
|
|
|
$int_true = false;
|
2017-11-30 20:10:27 +01:00
|
|
|
|
|
|
|
$sqlType = AE\isColEncrypted() ? SQLSRV_SQLTYPE_BIT : null;
|
|
|
|
$params = array(array(&$bit_true, SQLSRV_PARAM_OUT, SQLSRV_PHPTYPE_INT, $sqlType), array(&$bit_false, SQLSRV_PARAM_OUT, SQLSRV_PHPTYPE_INT, $sqlType), array(&$bit_cast_true, SQLSRV_PARAM_OUT, SQLSRV_PHPTYPE_INT, $sqlType), array(&$int_true, SQLSRV_PARAM_OUT, SQLSRV_PHPTYPE_INT, $sqlType));
|
2017-05-04 02:09:36 +02:00
|
|
|
|
|
|
|
$stmt = sqlsrv_query($conn, $callSP, $params);
|
2017-11-30 20:10:27 +01:00
|
|
|
if (! $stmt){
|
|
|
|
fatalError("Failed when calling testBoolean.");
|
|
|
|
}
|
2017-05-04 02:09:36 +02:00
|
|
|
|
|
|
|
var_dump($bit_true);
|
|
|
|
var_dump($bit_false);
|
|
|
|
var_dump($bit_cast_true);
|
|
|
|
var_dump($int_true);
|
|
|
|
|
2017-12-05 18:26:54 +01:00
|
|
|
dropProc($conn, 'testBoolean');
|
2017-11-30 20:10:27 +01:00
|
|
|
|
2017-05-04 02:09:36 +02:00
|
|
|
sqlsrv_free_stmt($stmt);
|
|
|
|
sqlsrv_close($conn);
|
|
|
|
?>
|
|
|
|
--EXPECT--
|
|
|
|
bool(true)
|
|
|
|
bool(false)
|
|
|
|
bool(true)
|
2017-10-04 23:22:56 +02:00
|
|
|
bool(true)
|