@rogiivs

Почему PDO SQLite возвращает в INT как STRING?

Почему PDO SQLite возвращает в INT как STRING, не как INT? Код и результат ниже, пожалуйста скажите где моя ошибка.
код:
<?php
$pdo = new PDO('sqlite:test.db');
$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->query(/** @lang sqlite */
    'create table if not exists test (one integer, two integer, three integer)'
);
$insert_prep =  $pdo->prepare(/** @lang sqlite */
    'insert into test values (:one, :two, :three)'
);

$insert_prep->bindValue(':one', 1, PDO::PARAM_INT);
$insert_prep->bindValue(':two',  2, PDO::PARAM_INT);
$insert_prep->bindValue(':three',  3, PDO::PARAM_INT);
$insert_prep->execute();

echo '<pre>';
var_dump($pdo->query(/** @lang sqlite */
    'select * from test'
)->fetchAll(PDO::FETCH_NUM));

результат выполнения:
array(1) {
  [0]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
}


P.S. я видел вопрос Почему pdo драйвер возвращает int как string? и ответы я тоже читал к нему, но как вы видите у меня атрибутам PDO::ATTR_STRINGIFY_FETCHES и PDO::ATTR_EMULATE_PREPARES присвоено значение false и все равно INT возвращается как STRING.
  • Вопрос задан
  • 211 просмотров
Пригласить эксперта
Ответы на вопрос 1
@caballero
Программист
у него все поля по сути string надо явно конвертить
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы