当前位置: 首页 > 面试题库 >

json_encode返回NULL?

高奇
2023-03-14
问题内容

由于某种原因,“描述”项将返回NULL以下代码

<?php
include('db.php');

$result = mysql_query('SELECT * FROM `staff` ORDER BY `id` DESC LIMIT 2') or die(mysql_error());
$rows = array();
while($row = mysql_fetch_assoc($result)){
    $rows[] = $row;
}

echo json_encode($rows);
?>

这是我的数据库的架构:

CREATE TABLE `staff` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` longtext COLLATE utf8_unicode_ci,
  `description` longtext COLLATE utf8_unicode_ci,
  `icon` longtext COLLATE utf8_unicode_ci,
  `date` longtext COLLATE utf8_unicode_ci,
  `company` longtext COLLATE utf8_unicode_ci,
  `companyurl` longtext COLLATE utf8_unicode_ci,
  `appurl` longtext COLLATE utf8_unicode_ci,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

这是页面上呼应的内容:

[{"id":"4","name":"Noter 2","description":null,"icon":"http:\/\/images.apple.com\/webapps\/productivity\/images\/noter2_20091223182720-thumb.jpg","date":"1262032317","company":"dBelement, LLC","companyurl":"http:\/\/dbelement.com\/","appurl":"http:\/\/noter2.dbelement.com"},{"id":"3","name":"Noter 2","description":null,"icon":"http:\/\/images.apple.com\/webapps\/productivity\/images\/noter2_20091223182720-thumb.jpg","date":"1262032317","company":"dBelement, LLC","companyurl":"http:\/\/dbelement.com\/","appurl":"http:\/\/noter2.dbelement.com"}]

有任何想法吗?


问题答案:

我敢打赌,您正在以非utf8编码检索数据:请尝试mysql_query('SET CHARACTER SET utf8')SELECT查询之前输入。



 类似资料:
  • 问题内容: Array ( [sEcho] => 1 [iTotalRecords] => 7521 [iTotalDisplayRecords] => 1 [aaData] => Array ( [0] => Array ( [0] => Nordic Capital Buys SiC Processing [1] => 2010-06-21/nordic-capital-buys-sic-pr

  • 我试图将mysql查询的结果作为json返回,但是json_encode函数总是返回空白,尽管数组包含元素。 检索查询并转换为php数组: 然后返回结果: 这不返回任何内容,而我在回显以下语句时确实得到了结果: 返回“数组” 返回“Youreka!demo” 你知道我做错了什么吗? ID:2,名字:尤瑞卡!演示,地址:Italiëlei 26,邮政编码:2000,城市:Antwerpen,国家:B

  • 问题内容: 观察这个小脚本: PHP为什么将JSON对象变成一个类? 如果不是一个数组,它是那么产生完全相同的结果? 问题答案: 采取在的第二个参数仔细看看在https://secure.php.net/json_decode

  • 问题内容: 我有一个带有3个嵌套数组的简单php结构。 我不使用特定的对象,而是使用2个嵌套循环构建数组。 这是我要转换为Json的数组的var_dump的示例。 在另一个脚本中,我具有类似的结构并且工作正常。所以我不明白为什么在这里不起作用。 编辑:似乎有编码问题。当返回ASCII,该作品但当它返回UTF8,它不工作了。 Edit2:返回表示:格式错误的UTF-8字符,可能编码不正确。 问题答案

  • 问题内容: 我正在使用jQuery的$ .post调用,它返回的字符串带有引号。引号由json_encode行添加。如何停止添加引号?我的$ .post通话中是否缺少某些内容? 问题答案: 返回一个字符串。从文档中: 你需要调用上,这将解析JSON字符串,并把它变成一个对象: 但是,由于在调用中将字符串连接到,将记录的是,它将返回对象的字符串表示形式。因此,您将要登录一个单独的呼叫。像这样:

  • 问题内容: 我正在使用接受json响应的jquery ajax调用: 在我的php后端函数中,我在一个简单的数组上使用json_encode,如下所示: 但是 alert(msg.hello) 为我返回 未定义 。这是怎么了?另外,在我的 console.log中, 我能够得到如下输出: 问题答案: 使用的返回数据: