用于 PDO getColumnMeta() 的 PHP native_type 列表

2021-12-26 00:00:00 database php pdo

我使用 PDO 数据库抽象库来确保我的代码是可移植的.但是,我现在发现我需要列信息,所以我转向 PDOStatement->getColumnMeta() 方法希望它会有些标准化 - 但从我发现它实际上似乎是开放式的.

I am using the PDO Database Abstraction library to make sure my code is portable. However, I now find that I need column information so I turned to the PDOStatement->getColumnMeta() method hoping it would be somewhat standardized - but from what I have found it actually seems open-ended.

例如,当从 SQLite 调用该方法时,您似乎得到了一组可能的值:

For example, when calling that method from SQLite it seems you get one set of possible values:

http://gcov.php.net/PHP_5_3/lcov_html/pdo_sqlite/sqlite_statement.c.gcov.php

null
double
blob
string
integer
...

虽然来自 MySQL 数据库的调用列出了各种其他奇怪的值:http://gcov.php.net/PHP_5_3/lcov_html/pdo_mysql/mysql_statement.c.gcov.php

While a call from the MySQL database lists all kinds of other weird values: http://gcov.php.net/PHP_5_3/lcov_html/pdo_mysql/mysql_statement.c.gcov.php

var_string
longlong
newdecimal
geometry
...

我也可能找错了地方,但我找不到关于切换数据库时native_type"值可能是什么的任何有用数据.

I may be looking in the wrong place also, but I just can't find any useful data on what "native_type" values can be when it comes to switching around databases.

推荐答案

这是 PDO 中有意未定义的领域之一,以保持抽象的轻量级.

This is one of those areas of PDO that was left intentionally undefined, in order to keep the abstraction light weight.

PDO 没有为此方法定义类型的标准表示;每个司机都有自己的想法,可以返回这里.

PDO does not define a standard representation of types for this method; each driver has it's own idea about what it can return here.

相关文章