【发布时间】:2017-11-19 21:27:26
【问题描述】:
我尝试使用PDO::FETCH_CLASS 从状态表中获取数据,但它返回int 字段为string
MySQL 表架构:
CREATE TABLE IF NOT EXISTS `INState` (
`StateId` bigint(20) NOT NULL,
`Name` varchar(255) NOT NULL
)
我的 PHP 代码:
class StateModel
{
public $StateId;
public $Name;
}
$stateArr = $db->query('SELECT StateId, Name FROM INState')->fetchAll(PDO::FETCH_CLASS, 'StateModel');
var_dump($stateArr);
以上代码的输出是
array(2) {
[0]=> object(StateModel)#4 (2)
{ ["StateId"]=> string(1) "1" ["Name"]=> string(14) "Andhra Pradesh" }
[1]=> object(StateModel)#5 (2)
{ ["StateId"]=> string(1) "2" ["Name"]=> string(10) "Tamil Nadu" }
)
在表架构中,列StateId 标记为bigint,但它返回的代码端为string。如何使用PDO::FETCH_CLASS 将StateId 属性设为int 而不是string?请帮助我。
【问题讨论】:
-
related answer。和你有同样的问题,对我来说很好(php7)
标签: php mysql pdo casting php-7