|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2014-03-24 21:08 UTC] mike at oobak dot org
[2014-09-11 23:04 UTC] cjames at me dot com
[2020-09-28 14:13 UTC] cmb@php.net
-Status: Open
+Status: Feedback
-Assigned To:
+Assigned To: cmb
[2020-09-28 14:13 UTC] cmb@php.net
[2020-10-11 04:22 UTC] php-bugs at lists dot php dot net
|
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 30 22:00:01 2025 UTC |
Description: ------------ PHP 5.5.10 unixODBC 2.3.2 tdodbc (Teradata ODBC driver) 14.10 Attempts to use PDO::FETCH_OBJ and PDO::FETCH_CLASS fail with the error "Cannot access empty property." Switching to PDO::FETCH_LAZY shows a blank field name (see below). Other methods such as PDO::FETCH_NAMED and PDO::FETCH_ASSOC work fine. Plain vanilla odbc_fetch_obj() (without PDO) works fine. PDO::FETCH_OBJ works fine with a different ODBC driver. pdo_odbc / Teradata / PDO::FETCH_OBJ => fails pdo_odbc / Teradata / PDO::FETCH_CLASS => fails pdo_odbc / Teradata / PDO::FETCH_NAMED => succeeds pdo_odbc / Oracle / PDO::FETCH_OBJ => succeeds odbc / Teradata / odbc_fetch_obj() => succeeds Test script: --------------- $dbh = new PDO("odbc:FOO"); $sth = $dbh->query(" SELECT rolename FROM dbc.allrolerights WHERE databasename = 'BAR' "); $result = $sth->fetch(PDO::FETCH_OBJ); Expected result: ---------------- object(stdClass)#1 (1) { ["RoleName"]=> string(30) "FNAR " } Actual result: -------------- PDO::FETCH_OBJ or PDO::FETCH_CLASS (with stdClass or user class): PHP Fatal error: Cannot access empty property PDO::FETCH_LAZY: object(PDORow)#3 (2) { ["queryString"]=> string(95) " SELECT rolename FROM dbc.allrolerights WHERE databasename = 'BAR' " [""]=> string(30) "FNAR " } PDO::FETCH_NAMED: array(1) { ["RoleName"]=> string(30) "FNAR " } My stack thread: http://stackoverflow.com/questions/22614222/pdo-returning-empty-property-name