Поскольку через пару дней у меня есть одно приложение (на клиентском сервере, к которому у меня еще нет полного доступа), которое отказывается подчиняться настройке 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 (снова)
Как включить mysqlnd для php?