Merge pull request #322 from yitam/addNewTests

one more test
This commit is contained in:
v-kaywon 2017-03-09 15:19:22 -08:00 committed by GitHub
commit a76e14efa2

View file

@ -0,0 +1,158 @@
--TEST--
Test insert various numeric data types and fetch them back as strings
--FILE--
<?php
include 'tools.inc';
function ExecData_Value($conn, $numRows, $phpType = SQLSRV_PHPTYPE_NULL)
{
$tableName = GetTempTableName();
$stmt = sqlsrv_query($conn, "CREATE TABLE [$tableName] ([c1_int] int, [c2_smallint] smallint)");
sqlsrv_free_stmt($stmt);
if ($phpType == SQLSRV_PHPTYPE_NULL)
{
echo "Insert integers without PHP type\n";
$stmt = sqlsrv_prepare($conn, "INSERT INTO [$tableName] (c1_int, c2_smallint) VALUES (?, ?)", array(array(&$v1), array(&$v2)));
}
else // SQLSRV_PHPTYPE_INT
{
echo "Insert integers as SQLSRV_PHPTYPE_INT\n";
$stmt = sqlsrv_prepare($conn, "INSERT INTO [$tableName] (c1_int, c2_smallint) VALUES (?, ?)", array(array(&$v1, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_INT), array(&$v2, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_INT)));
}
$value = 1;
for ($i = 0; $i < $numRows; $i++)
{
$v1 = $value;
$v2 = $v1 + 1;
sqlsrv_execute($stmt);
$value += 10;
}
sqlsrv_free_stmt($stmt);
$stmt = sqlsrv_query($conn, "SELECT * FROM $tableName");
FetchData($stmt, $numRows);
sqlsrv_free_stmt($stmt);
}
function ExecData_Param($conn, $numRows, $withParam = false)
{
$tableName = GetTempTableName();
$stmt = sqlsrv_query($conn, "CREATE TABLE [$tableName] ([c1_float] float, [c2_real] real)");
sqlsrv_free_stmt($stmt);
if ($withParam)
{
echo "Insert floats with direction specified\n";
$stmt = sqlsrv_prepare($conn, "INSERT INTO [$tableName] (c1_float, c2_real) VALUES (?, ?)", array(array(&$v1, SQLSRV_PARAM_IN), array(&$v2, SQLSRV_PARAM_IN)));
}
else // no param
{
echo "Insert floats without direction\n";
$stmt = sqlsrv_prepare($conn, "INSERT INTO [$tableName] (c1_float, c2_real) VALUES (?, ?)", array(&$v1, &$v2));
}
$value = 1.0;
for ($i = 0; $i < $numRows; $i++)
{
$v1 = $value;
$v2 = $v1 + 1.0;
sqlsrv_execute($stmt);
$value += 10;
}
sqlsrv_free_stmt($stmt);
$stmt = sqlsrv_query($conn, "SELECT * FROM $tableName");
FetchData($stmt, $numRows);
sqlsrv_free_stmt($stmt);
}
function FetchData($stmt, $numRows)
{
for ($i = 0; $i < $numRows; $i++)
{
sqlsrv_fetch($stmt);
$value = sqlsrv_get_field($stmt, 0, SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_CHAR));
echo "$value, ";
$value = sqlsrv_get_field($stmt, 1, SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_CHAR));
echo "$value\n";
}
}
function Repro()
{
StartTest("sqlsrv_param_query_array_inputs");
try
{
set_time_limit(0);
sqlsrv_configure('WarningsReturnAsErrors', 1);
require_once("autonomous_setup.php");
$database = "tempdb";
// Connect
$connectionInfo = array("UID"=>$username, "PWD"=>$password);
$conn = sqlsrv_connect($serverName, $connectionInfo);
if( !$conn ) { FatalError("Could not connect.\n"); }
$numRows = 5;
ExecData_Value($conn, $numRows);
ExecData_Value($conn, $numRows, SQLSRV_PHPTYPE_INT);
ExecData_Param($conn, $numRows, true);
ExecData_Param($conn, $numRows);
sqlsrv_close($conn);
}
catch (Exception $e)
{
echo $e->getMessage();
}
echo "\nDone\n";
EndTest("sqlsrv_param_query_array_inputs");
}
Repro();
?>
--EXPECT--

...Starting 'sqlsrv_param_query_array_inputs' test...
Insert integers without PHP type
1, 2
11, 12
21, 22
31, 32
41, 42
Insert integers as SQLSRV_PHPTYPE_INT
1, 2
11, 12
21, 22
31, 32
41, 42
Insert floats with direction specified
1.0, 2.0
11.0, 12.0
21.0, 22.0
31.0, 32.0
41.0, 42.0
Insert floats without direction
1.0, 2.0
11.0, 12.0
21.0, 22.0
31.0, 32.0
41.0, 42.0
Done
...Test 'sqlsrv_param_query_array_inputs' completed successfully.