PDO :: ATTR_STRINGIFY_FETCHES = false不再强制PDO返回INT

时间:2018-08-24 18:53:12

标签: php mysql pdo

几天以来,我有一个应用程序(在我尚未完全访问的Clients服务器上)拒绝遵守PDO::ATTR_STRINGIFY_FETCHES=false设置。

下面的代码应返回integer(就像在我自己​​的服务器上一样)

但在一台服务器上(我已将此测试代码邮寄给他们),它返回string

$PDO = new PDO("mysql:host=" . DB_SERVER . ";dbname=" . DB_NAME . ";charset=utf8", DB_USER, DB_PASS);
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$PDO->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$PDO->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
$stmt = $PDO->prepare("SELECT * FROM information_schema.tables WHERE table_name='TABLES';");
$stmt->execute();
$tables = $stmt->fetch(PDO::FETCH_ASSOC);
echo "<H1>" . gettype($tables['VERSION']) . "</H1>";
var_dump($tables);

设置PDO::ATTR_STRINGIFY_FETCHES=true当然在我自己的服务器上表现出相同的行为,因为默认情况下PDO返回整数作为字符串。

但是应用程序要求整数必须是PHP中的整数。

如前所述;我还没有访问该服务器的权限。还有指针吗?

更新

我终于有了一些phpinfo()

MySQLND现在(由于未知原因)丢失了(因为应用程序运行正常,它就在那之前)

已将系统管理员定向至有关激活MySQLND的博客(再次)

How to enable mysqlnd for php?

0 个答案:

没有答案