php-sqlsrv/test/sqlsrv/0060.phpt
2017-05-04 08:14:05 -07:00

67 lines
2 KiB
PHP

--TEST--
binding parameters, including output parameters, using the simplified syntax.
--SKIPIF--
<?php require('skipif.inc'); ?>
--FILE--
<?php
sqlsrv_configure( 'WarningsReturnAsErrors', 0 );
sqlsrv_configure( 'LogSeverity', SQLSRV_LOG_SEVERITY_ALL );
require( 'MsCommon.inc' );
$conn = Connect();
if( !$conn ) {
FatalError( "sqlsrv_create failed." );
}
$v1 = 1;
$v2 = 2;
$v3 = -1;
// this is a test to infer the PHP type to be integer and check it so that it matches
$stmt = sqlsrv_prepare( $conn, "{call test_out( ?, ?, ? )}", array( &$v1, &$v2, array( &$v3, SQLSRV_PARAM_OUT, null, SQLSRV_SQLTYPE_INT )));
$result = sqlsrv_execute( $stmt );
if( $result === false ) {
print_r( sqlsrv_errors() );
}
while( sqlsrv_next_result( $stmt ) != null );
echo "$v3\n";
sqlsrv_free_stmt( $stmt );
// this is a test to see if we force the type to be integer when it's inferred and the variable is a string
$v3 = null;
$stmt = sqlsrv_prepare( $conn, "{call test_out( ?, ?, ? )}", array( &$v1, &$v2, array( &$v3, SQLSRV_PARAM_OUT, null, SQLSRV_SQLTYPE_INT )));
$result = sqlsrv_execute( $stmt );
if( $result === false ) {
print_r( sqlsrv_errors() );
}
while( sqlsrv_next_result( $stmt ) != null );
echo "$v3\n";
sqlsrv_free_stmt( $stmt );
// For output parameters, if neither the php_type nor the sql_type is specified than the variable type is used to determine the php_type.
// php type or sql type is specified, than it is an error case.
$v3 = 3;
$stmt = sqlsrv_prepare( $conn, "{call test_out( ?, ?, ? )}", array( &$v1, &$v2, array( &$v3, SQLSRV_PARAM_OUT, null, null)));
$result = sqlsrv_execute( $stmt );
if( $result === false ) {
print_r( sqlsrv_errors() );
}
while( sqlsrv_next_result( $stmt ) != null );
echo "$v3\n";
sqlsrv_free_stmt( $stmt );
sqlsrv_close( $conn );
?>
--EXPECT--
3
3
3