Bir PHP sorunu, PDO sorunu veya SQLITE sorunu olup olmadığını bilmiyorum, ancak NUMBER veri türü olan sütunlarda değerler aradığında veya yalnızcasqlite'den tür sayısı değerleri alın - metin alınıyor
{ foo: "580", test: 12.50, test2: 666 }
Bu, benim gerçek sorgu örnek bir koddur:
<?php
//...
$res = $pdo->query("SELECT SUM(id) as 'foo' FROM anytable");
$bar = $res->fetch(); //this value should be (int)
$bar['test'] = 12.50; //this value is (float)
$bar['test'] = 666; //this value is (int)
echo json_encode($bar);
?>
ben bu nesneyi almak (... tamsayı, şamandıra) php numarasının dize Istead olarak onları almak, onları bir SUM almak gerçekten daha karmaşıktır ve her alana (yaklaşık olarak 90) tamsayı veya kayan nokta olarak ayrıştırmak istemiyorum çünkü bunlar karma veri türü
DÜZENLEME: VolKerk tarafından belirtildiği gibi, sqlite için PDO'daki uygulanması oldukça zayıftır. Bize biraz ipucu veren $pdostmt->getColumnMeta($intColId)
numaralı özelliği test ettim. Onlar sqlite sürücü türlerini sözdizimsel olarak eşleşmediği için, daha fazla bir şey test edeceğim ve ilgilenen herkes varsa, zamana bağlı olarak burada bırakacağım.
$hints = $pdostmt->getColumnMeta($intColId);
$coltype = $hints['native_type'];
sonuçları:
sqlite data type | native_type
---------------------------------
DECIMAL | 'double'
senden çok daha fazla. Bu sorunu ele almak için beklemiyordum ... en azından sqlite sql kodu matematik yapar. * deneysel * getColumnMeta'nın umudu pek değişmez ve stabilize olmaz. Hoşçakal! –