我在查询结果上调用mysql_fetch_assoc($res)
。查询很好,在同一行中返回了其他结果。最后一列始终为null。这是为什么?
代码(已缩写,所以请不要对样式发表评论):
$qy = "SELECT * FROM `entries` WHERE `dag`=".$_POST['day'];
$res = mysql_query($qy, $sql);
$d = '';
$row = mysql_fetch_assoc($res);
$d .= $row['text'];
$e = json_encode($row);
echo json_encode(array("status" => "success", "data" => $d, "error" => $e));
$d
将等于null
,而$e
将等于{"status":"success","data":null,"error":"{\"dag\":\"DATA\",\"afstand\":\"DATA\",\"tijd\":\"DATA\",\"max\":\"DATA\",\"tottijd\":\"DATA\",\"odo\":\"DATA\",\"van\":\"DATA\",\"naar\":\"DATA\",\"weer\":\"DATA\",\"text\":null}"}
,其中DATA
是正确的数据。 text
列为null
。
text
列具有VARCHAR
类型,最多包含5000个字符。我想要检索的字段中的文本长度为1800个字符。
答案 0 :(得分:1)
我已经找到了两年前我自己的问题的答案。
问题是编码:text
列包含不是UTF-8编码的文本。当我将代码包装起来以获取text
中的utf8_encode()
时,一切都按预期工作。