[php-src] Issue #15219: odbc_fetch_*() fails to fetch SQL Server text fields with SQL_CUR_USE_ODBC
| From: | danielmarschall | Date: | Sat, 03 Aug 2024 18:50:32 +0000 |
| Subject: | [php-src] Issue #15219: odbc_fetch_*() fails to fetch SQL Server text fields with SQL_CUR_USE_ODBC | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-247427@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/15219
Author: danielmarschall
### Description
The following code:
```php
$conn = odbc_connect('DRIVER={SQL Server Native Client
11.0};SERVER=LOCALHOST\SQLSERVER;DATABASE=OIDPLUS;charset=UTF-8;Client_CSet=UTF-8;Server_CSet=UTF-8',
'sa', '123456', SQL_CUR_USE_ODBC);
$res = odbc_exec($conn, "select description from my_objects");
while ($row = odbc_fetch_object($res)) {
var_dump($row);
}
echo odbc_close($conn);
```
Resulted in this output:
```
(Nothing; odbc_fetch_object is false)
```
But I expected this output instead:
```
Printed array with descriptions
```
The bug only happens if
odbc_connect() has SQL_CUR_USE_ODBC and it ONLY
fails if you fetch exactly one column with the text data type. If you fetch a text row and another
row, then it works!
- select description from my_objects does NOT work
- select id, description from my_objects WORKS
- select id from my_objects WORKS
System:
- Windows 10 Pro
- SQL Server 2022
### PHP Version
PHP 8.3.6 (also tested with PHP 8.4 Alpha 4)
### Operating System
Windows 10 x64