【发布时间】:2016-05-19 06:38:55
【问题描述】:
我正在使用 PHP (5.6.8) 作为 MySQL 数据库和以 JSON 格式返回结果之间的中间层。
我们正在使用 PHP 扩展 (PDO) 来进行数据库交互,但注意到所有数值都作为字符串返回。数据库本身在 Linux 安装上运行,但在开发过程中,客户端和中间层都在 Windows 上运行。
我将连接参数“ATTR_STRINGIFY_FETCHES”设置为 false,但这没有任何区别。例如$dbConnection->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
这是我用来检索数据的 PHP 函数,它与 RESTful 接口绑定。
function getAllObjects()
{
$sql = "SELECT * FROM Tbl_Objects ORDER BY 1";
try {
$db = getDB();
$stmt = $db->query($sql);
$objects = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo json_encode($objects);
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
我也尝试了“mysqli”,但我得到了相同的结果,因为数值都被转换为字符串。如果我在网上使用“cast_query_results($rs)”函数,我确实可以正确转换数字,但在我看来,这更像是一个骗局,而不是一个解决方案。
关于如何让它在本地工作的任何想法?
【问题讨论】:
-
如何将“数字”值作为字符串或 Int 输入 DB?
-
数据库中的值是如何表示的?最终提供表结构。