You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Trickier to abstract: Result::getColumnType(int $index) as we would have to define an abstraction for the column type. So not sure this should be part of this API for now.
Looking quickly, here is what I found for the drivers we have in core
ext-sqlite3 has SQLite3Result::numColumns, SQLite3Result::columnName and SQLite3Result::columnType (returning an integer corresponding to some constants)
PDO has PDOStatement::columnCount and PDOStatement::getColumnMeta (returning a shape with many keys and potentially not implemented by custom PDO drivers, but implemented by all core PDO drivers)
ext-pgsql has pg_num_fields, pg_field_name and pg_field_type
ext-mysqli has mysqli_result::$field_count to the field count and mysqli_result::fetch_field_direct to get info about the field
ext-ibm-db2 has db2_num_fields, db2_field_name and db2_field_type (and a few other db2_field_* functions)
ext-oci8 has oci_num_fields, oci_field_name and oci_field_type
ext-sqlsrv has sqlsrv_num_fields and sqlsrv_field_metadata (which gives the metadata for all fields as a list instead of taking an index as argument like for other extensions)
The text was updated successfully, but these errors were encountered:
Regarding getColumnName, I suggest we throw an exception if the (0-based) index does not exist in the Result object. It will be easier for static analysis than making it return string|null as the expected usage is to pass valid indexes.
| Q | A
|------------- | -----------
| Type | feature
| Fixed issues | #5980
#### Summary
This method allows introspecting the shape of results by knowing the
name of columns (combined with the `columnCount` which already exists).
Feature Request
Summary
Easy things to implement:
Result::getColumnCount(): int
Result::getColumnName(int $index): string
Trickier to abstract:
Result::getColumnType(int $index)
as we would have to define an abstraction for the column type. So not sure this should be part of this API for now.Looking quickly, here is what I found for the drivers we have in core
SQLite3Result::numColumns
,SQLite3Result::columnName
andSQLite3Result::columnType
(returning an integer corresponding to some constants)PDOStatement::columnCount
andPDOStatement::getColumnMeta
(returning a shape with many keys and potentially not implemented by custom PDO drivers, but implemented by all core PDO drivers)pg_num_fields
,pg_field_name
andpg_field_type
mysqli_result::$field_count
to the field count andmysqli_result::fetch_field_direct
to get info about the fielddb2_num_fields
,db2_field_name
anddb2_field_type
(and a few otherdb2_field_*
functions)oci_num_fields
,oci_field_name
andoci_field_type
sqlsrv_num_fields
andsqlsrv_field_metadata
(which gives the metadata for all fields as a list instead of taking an index as argument like for other extensions)The text was updated successfully, but these errors were encountered: