gpt4 book ai didi

php - 实际有值时sql语句返回null

转载 作者:行者123 更新时间:2023-11-29 03:02:20 25 4
gpt4 key购买 nike

我在后端使用 Flight 框架构建 RESTful 服务,并使用 PDO 从 MySql 检索数据。

require 'flight/Flight.php';    

Flight::route('GET /satellites', function () {
$sql = "SELECT * FROM satellites";
try {
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$response = json_encode($stmt->fetchAll());
$db = null;
echo "{sucess: true, records:" . "$response" . "}";
} catch (PDOException $e) {
echo '{"error":{"text":' . $e->getMessage() . '}}';
}
});

Flight::start();

我得到这个 JSON 作为响应:

{
sucess: true,
records:[
{
"id":"1",
"dates":"01.01.2007 - 01.01.2011",
"satellite":null,
null:"98.2",
"resolution":"15",
"band":"30",
"price":"$15"
}
]
}

上面是正确的,但是satellite不应该为null,它肯定是有值的(我通过PHPMyAdmin查过了)。还有一个名为 null 的列,值为 98.2,应称为 nadir。为什么叫null?

顺便说一句,卫星和天底列的数据类型是 varchar(255)。然后我将卫星列数据类型更改为文本,但都一样。

最佳答案

在您的记录中可能有一些隐藏字符,如您的 var_dump 数据所示:

array(1) {
[0]=> array(10) {
["id"]=> string(1) "1"
["dates"]=> string(23) "01.01.2007 - 01.01.2011"
["satellite"]=> string(9) "SAT­7" // This 4 character is showing count 9
["nadir­"]=> string(4) "98.2"
["resolution"]=> string(2) "15"
["band"]=> string(2) "30"
["price"]=> string(3) "$15"
}
}

上面的“SAT7”实际上看起来像4个字符的单词,但它有一些隐藏的字符,var_dump显示计数。同样,"nadir" 也有隐藏字符。

解决上述问题并继续

这里的 json 输出是这样的:

[{
"id":"1",
"dates":"01.01.2007 - 01.01.2011",
"satellite":"SAT\u00ad7", // Hidden characters in value
"nadir\u00ad":"98.2", // Hidden characters in field
"resolution":"15",
"band":"30",
"price":"$15"
}]

关于php - 实际有值时sql语句返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21329271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com