几天以来,我有一个应用程序(在我尚未完全访问的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的博客(再次)