Да, используя PDO и драйвер mysqlnd , вы можете получить целые числа как тип (int).
, например
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'localonly', 'localonly');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
setup($pdo);
foreach( $pdo->query('SELECT * FROM soFoo', PDO::FETCH_ASSOC) as $row ) {
var_dump($row);
}
function setup($pdo) {
$pdo->exec('CREATE TEMPORARY TABLE soFoo (
id int auto_increment,
s varchar(32),
t datetime,
primary key(id)
)');
$pdo->exec("INSERT INTO soFoo (s,t) VALUES ('abc', Now()), (NULL, Now())");
}
печать
array(3) {
["id"]=>
int(1)
["s"]=>
string(3) "abc"
["t"]=>
string(19) "2011-11-16 13:34:27"
}
array(3) {
["id"]=>
int(2)
["s"]=>
NULL
["t"]=>
string(19) "2011-11-16 13:34:27"
}
на моей машине. Как видите, id
возвращается как целое число.