PDO :: ATTR_STRINGIFY_FETCHES = false Больше не заставляет PDO возвращать INT - PullRequest
0 голосов
/ 24 августа 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...