* Fixed the potential error reported by Prefast code analysis * Use SQLSRV_ASSERT for checking NULL ptrs * For these AKV tests check env despite not AE connected * Added the driver option to run functional tests * Fixed connection pooling tests for more than one ODBC drivers * added driver option to pdo isPooled.php * Removed win32 ifdefs re connection resiliency (#802) * Set the driver argument for getDSN to null by default (#798) * Added the driver argument to getDSN * Dropped the driver argument but set to null as default * Removed the AE condition in locale support * Modified the AE condition for locale support * Changed int to SQLLEN to avoid infinite loop (#806) * Version 5.3.0 (#803) * Version 5.3.0 * Fixed the wrong replacements * Added comments block to m4 files * Use dnl for comments * Modified AE fetch phptypes test to insert only one row at a time and loop through php types (#801) * Modified AE fetch phptypes test to insert only one row at a time and loop through php types * Fixed formatting * Streamlined two very similar large column name tests (#807) * Streamlined two very similar large column name tests * Changed the EOL * Updates to change log and readme (#811) * Updates to change log and readme * Dropped support for Ubuntu 17 * Modified as per review comments * Fixed connection resiliency tests for Unix, updated AppVeyor for ODBC 17.2 * Fixed expected output * Fixed output and skipifs * Fixed skipifs and output * Fixed driver name * Updated installation instructions and sample script (#813) * Updated instructions and sample test for 5.3.0 RTW * Fixed sample code to adhere to php coding standard * Fixed cases and spaces * Modified NOTE for UB 18.04 based on review comments * Added 'exit' * Modified change log and readme based on review to PR 811 * Applied review comments * build output to debug appveyor failure * removed debug output * Streamlined two very similar large column name tests (#815) * Streamlined two very similar large column name tests * Added random number of test table names to avoid operand clash issues * Replaced to with for based on review * Changelog updated * changelog updated, test skipif changed to run on unix platforms * Fixed skipif typo * Fixed typo in skipif for pdo * Fixed some output for Travis * Moved error checking inside pdo connres tests * Added links back to changelog * Fixed output for sqlsrv connres tests * Fixed output * Fixed output again
78 lines
1.7 KiB
PHP
78 lines
1.7 KiB
PHP
--TEST--
|
|
PDO - Large Unicode Column Name Test
|
|
--DESCRIPTION--
|
|
Verifies that long column names in Unicode are supported (up to 128 chars).
|
|
--ENV--
|
|
PHPT_EXEC=true
|
|
--SKIPIF--
|
|
<?php require('skipif.inc'); ?>
|
|
--FILE--
|
|
<?php
|
|
require_once('MsCommon.inc');
|
|
|
|
function largeColumnNameTest($columnName)
|
|
{
|
|
include 'MsSetup.inc';
|
|
|
|
Setup();
|
|
|
|
$conn = connect();
|
|
|
|
$tableName = "largeColumnNameTest";
|
|
|
|
dropTable($conn, $tableName);
|
|
|
|
$conn->query("CREATE TABLE [$tableName] ([$columnName] int)");
|
|
|
|
$conn->query("INSERT INTO [$tableName] ([$columnName]) VALUES (5)");
|
|
|
|
$stmt = $conn->query("SELECT * from [$tableName]");
|
|
|
|
dropTable($conn, $tableName);
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
// repro
|
|
//
|
|
//--------------------------------------------------------------------
|
|
function repro()
|
|
{
|
|
$testName = "PDO - Large Column Name Test";
|
|
|
|
startTest($testName);
|
|
|
|
// The maximum size of a column name is 128 characters
|
|
$maxlen = 128;
|
|
$columnName = str_repeat('是', $maxlen);
|
|
|
|
try {
|
|
largeColumnNameTest($columnName);
|
|
} catch (Exception $e) {
|
|
echo "Possible regression: Unable to retrieve inserted value\n";
|
|
print_r($e->getMessage());
|
|
echo "\n";
|
|
}
|
|
|
|
// Now add another character to the name
|
|
$columnName .= '是';
|
|
try {
|
|
largeColumnNameTest($columnName);
|
|
} catch (Exception $e) {
|
|
// Expects to fail
|
|
$expected = 'is too long. Maximum length is 128.';
|
|
if (strpos($e->getMessage(), $expected) === false) {
|
|
print_r($e->getMessage());
|
|
echo "\n";
|
|
}
|
|
}
|
|
|
|
endTest($testName);
|
|
}
|
|
|
|
repro();
|
|
|
|
?>
|
|
--EXPECT--
|
|
Test "PDO - Large Column Name Test" completed successfully.
|