【发布时间】:2015-07-22 12:53:45
【问题描述】:
我想从我的数据库中以整数形式返回 INT。目前所有值都作为字符串加载。数据库是 MSSQL 2012,我使用 PDO 驱动程序(适用于 v5.6)。
这里尝试设置属性(如图here on fideloper.com,但不知道还能不能这样):
'sqlsrv' => [
'driver' => 'sqlsrv',
'charset' => 'utf8',
'prefix' => '',
......
'options' => array(
PDO::ATTR_STRINGIFY_FETCHES => false,
PDO::ATTR_EMULATE_PREPARES => false,
),
],
但总是报错:
SQLSTATE[IMSSP]: The given attribute is only supported on the PDOStatement object.
如何设置 PDO 驱动程序以将 INT 作为整数而不是字符串返回。
这仍然不起作用:
$pdo = DB::connection()->getPdo();
$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
.. do ORM Query
带来同样的错误。
也许有人可以帮助我?
【问题讨论】:
-
不设置属性是否有效?你可以考虑在 git repo 上提出一个问题
-
一切正常,只能从 laravel ORM 获取所有数值作为字符串。生病将其用作 RESTful Web 服务,并且将每个值从 IO 转换为正确的数据类型是愚蠢的;) - 所以如果我可以将值作为数字得到,那就太好了。
-
要考虑的另一件事是转为
EMULATE_PREPARES。
标签: php sql-server laravel