mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
Merge branch 'PHP-7.2'
* PHP-7.2: Fixed bug #73725 Unable to retrieve value of varchar(max) type
This commit is contained in:
commit
23287a0a81
@ -1023,6 +1023,13 @@ int odbc_bindcols(odbc_result *result)
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
/* Workaround for drivers that report VARCHAR(MAX) columns as SQL_VARCHAR (bug #73725) */
|
||||
if (SQL_VARCHAR == result->values[i].coltype && displaysize == 0) {
|
||||
result->values[i].coltype = SQL_LONGVARCHAR;
|
||||
result->values[i].value = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Workaround for Oracle ODBC Driver bug (#50162) when fetching TIMESTAMP column */
|
||||
if (result->values[i].coltype == SQL_TIMESTAMP) {
|
||||
displaysize += 3;
|
||||
|
55
ext/odbc/tests/bug73725.phpt
Normal file
55
ext/odbc/tests/bug73725.phpt
Normal file
@ -0,0 +1,55 @@
|
||||
--TEST--
|
||||
Bug #73725 Unable to retrieve value of varchar(max) type
|
||||
--SKIPIF--
|
||||
<?php include 'skipif.inc'; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
include dirname(__FILE__) . "/config.inc";
|
||||
|
||||
$conn = odbc_connect($dsn, $user, $pass);
|
||||
|
||||
odbc_do($conn, "CREATE TABLE bug73725(i int, txt varchar(max), k int)");
|
||||
|
||||
odbc_do($conn, "INSERT INTO bug73725 VALUES(101,'Any text', 33)");
|
||||
odbc_do($conn, "INSERT INTO bug73725 VALUES(102,'Müsliriegel', 34)");
|
||||
|
||||
$rc = odbc_do($conn, "SELECT i, txt, k FROM bug73725");
|
||||
|
||||
$r = odbc_fetch_array($rc);
|
||||
var_dump($r);
|
||||
|
||||
$r = odbc_fetch_array($rc);
|
||||
var_dump($r);
|
||||
|
||||
?>
|
||||
==DONE==
|
||||
--EXPECT--
|
||||
array(3) {
|
||||
["i"]=>
|
||||
string(3) "101"
|
||||
["txt"]=>
|
||||
string(8) "Any text"
|
||||
["k"]=>
|
||||
string(2) "33"
|
||||
}
|
||||
array(3) {
|
||||
["i"]=>
|
||||
string(3) "102"
|
||||
["txt"]=>
|
||||
string(12) "Müsliriegel"
|
||||
["k"]=>
|
||||
string(2) "34"
|
||||
}
|
||||
==DONE==
|
||||
--CLEAN--
|
||||
<?php
|
||||
include 'config.inc';
|
||||
|
||||
$conn = odbc_connect($dsn, $user, $pass);
|
||||
|
||||
odbc_exec($conn, 'DROP TABLE bug73725');
|
||||
|
||||
odbc_close($conn);
|
||||
|
||||
?>
|
Loading…
Reference in New Issue
Block a user