mysql_query是否保留返回时在表中创建的数据类型?

avi*_*viv 5 php mysql json types

我在mysql中有一个表:

CREATE TABLE user (id INT, name VARCHAR(250));
Run Code Online (Sandbox Code Playgroud)

我查询表:

$result = mysql_query("SELECT id,name FROM user");
Run Code Online (Sandbox Code Playgroud)

我收集结果:

while($row = mysql_fetch_assoc($result) $rv[] = $row;
Run Code Online (Sandbox Code Playgroud)

我返回数据:

echo json_encode($rv);
Run Code Online (Sandbox Code Playgroud)

问题是id返回为字符串而不是int,甚至在json_encode之前.如果我强制$ row ['id'] =(int)$ row ['id']; - 它工作正常.

我如何强制mysql在$行中返回正确的数据类型?

10X.

use*_*291 2

PDO->bindColumn可以这样

$stmt = $dbh->prepare($sql);

$stmt->bindColumn('int_col', $intVar, PDO::PARAM_INT);
$stmt->bindColumn('string_col', $strVar, PDO::PARAM_STR);

$stmt->execute();

$stmt->fetch(PDO::FETCH_BOUND);
Run Code Online (Sandbox Code Playgroud)

$intVar 将自动转换为 int