Почему 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.