我在 php 文件中从 mysqlquery 得到的 json 结果看起来像这样:[{"ID":1,"comment":"Hello"},{"ID":2,"comment": “第二个你好”}]
出于我的目的,我还需要 ID 作为字符串。
我不能/不想更改数据库中的数据类型。
我必须在我的 php 文件或 Sql 查询中更改什么才能将 ID 获取为字符串。
<?php
$host = '';
$db = '';
$user = '';
$pass = '';
$charset = 'utf8mb4';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $user, $pass, $opt);
$sql= SELECT * FROM orders
$resultArray = array();
$tempArray = array();
foreach ($pdo->query($sql) as $row) {
$tempArray = $row;
array_push($resultArray, $tempArray);
}
echo json_encode($resultArray);
?>`
最佳答案
您可以确保添加的每一行都使用 strval
...
foreach ($pdo->query($sql) as $row) {
$tempArray = array_map('strval', $row); // Convert all columns to strings
array_push($resultArray, $tempArray);
}
添加开销,因为它应用于所有列,但它会逐列处理(尤其是当 SQL 更改时)保存
关于php - 我的 php 文件的 json 结果包含整数,但我需要所有值作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47954123/