- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有以下方案的 innodb 表,运行 MySQL 5.5:
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`category_id` int(10) unsigned DEFAULT NULL,
`uuid` varchar(36) NOT NULL,
我正在尝试使用 PDOStatement::getColumnMeta获取 id
列类型,但它给出了错误的数据:
array(3) {
[0]=>
array(7) {
["native_type"]=>
string(4) "LONG"
["flags"]=>
array(2) {
[0]=>
string(8) "not_null"
[1]=>
string(11) "primary_key"
}
["table"]=>
string(7) "entries"
["name"]=>
string(2) "id"
["len"]=>
int(10)
["precision"]=>
int(0)
["pdo_type"]=>
int(2)
}
[1]=>
array(7) {
["native_type"]=>
string(4) "LONG"
["flags"]=>
array(1) {
[0]=>
string(12) "multiple_key"
}
["table"]=>
string(7) "entries"
["name"]=>
string(11) "category_id"
["len"]=>
int(10)
["precision"]=>
int(0)
["pdo_type"]=>
int(2)
}
[2]=>
array(7) {
["native_type"]=>
string(10) "VAR_STRING"
["flags"]=>
array(1) {
[0]=>
string(8) "not_null"
}
["table"]=>
string(7) "entries"
["name"]=>
string(4) "uuid"
["len"]=>
int(108)
["precision"]=>
int(0)
["pdo_type"]=>
int(2)
}
}
请求的 PHP 代码:
$select = $db
->query("
SELECT
`id`,
`category_id`,
`uuid`
FROM
`entries`
LIMIT 1;
;
");
$meta = [];
for($i = 0, $j = $select->columnCount(); $i < $j; $i++)
{
$meta[] = $select->getColumnMeta($i);
}
最佳答案
我不会使用此函数来确定列的类型。该文档指出它是实验性的,体操只是不值得。我会使用:
SHOW COLUMNS FROM [table]
这将在结果中为您提供纯 MySQL 类型。它有点不那么优雅。但更可靠。
关于php - getColumnMeta 不返回正确的字段类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11356842/
我有以下方案的 innodb 表,运行 MySQL 5.5: `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `category_id` int(10)
我正在寻找 PDO 的 getColumnMeta() 可以返回的标志列表,但我无法在任何地方找到它。 是否有 PDOStatement::getColumnMeta() 可以在某处返回的标志列表?与
尝试编写一些东西以自动将任意数据库结果(即并非总是来自表 x)转换为适当的 PHP 类型结果。 我扩展了 PDOStatement 类, class Statement extends PDOStat
我正在使用 CakePHP 框架。当返回查询结果时,框架调用“实验性”PDOStatement::getColumnMeta 以在数据从数据库返回时“排列”数据。但是,根据查询的不同,结果会有所不同。
我正在使用 PDO 数据库抽象库来确保我的代码是可移植的。但是,我现在发现我需要列信息,所以我求助于 PDOStatement->getColumnMeta()希望它会有点标准化的方法 - 但据我发现
我是一名优秀的程序员,十分优秀!