--TEST-- invalid precision and sizes for parameters. --SKIPIF-- --FILE-- than max allowed (38) $stmt = sqlsrv_query( $conn, "INSERT INTO test_precision_size (id, varchar_type, decimal_type ) VALUES (?, ?, ?)", array( $f1, array( $f2, SQLSRV_PARAM_IN, null, SQLSRV_SQLTYPE_VARCHAR(8000)), array( $f3, SQLSRV_PARAM_IN, null, SQLSRV_SQLTYPE_DECIMAL(40, 0))) ); if ($stmt !== false) { die("sqlsrv_query should have failed."); } else { print_r(sqlsrv_errors()); } // test an invalid precision where the scale > precision $stmt = sqlsrv_query( $conn, "INSERT INTO test_precision_size (id, varchar_type, decimal_type ) VALUES (?, ?, ?)", array( $f1, array( $f2, SQLSRV_PARAM_IN, null, SQLSRV_SQLTYPE_VARCHAR(8000)), array( $f3, SQLSRV_PARAM_IN, null, SQLSRV_SQLTYPE_DECIMAL(15, 30))) ); if ($stmt !== false) { die("sqlsrv_query should have failed."); } else { print_r(sqlsrv_errors()); } sqlsrv_query($conn, "DROP TABLE test_precision_size"); sqlsrv_close($conn); ?> --EXPECT-- Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -31 [code] => -31 [2] => An invalid size or precision for parameter 2 was specified. [message] => An invalid size or precision for parameter 2 was specified. ) ) Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -31 [code] => -31 [2] => An invalid size or precision for parameter 3 was specified. [message] => An invalid size or precision for parameter 3 was specified. ) ) Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -31 [code] => -31 [2] => An invalid size or precision for parameter 3 was specified. [message] => An invalid size or precision for parameter 3 was specified. ) )