首页 >后端开发 >php教程 >关于json重mysql读取数据问题

关于json重mysql读取数据问题

WBOY
WBOY原创
2016-06-23 14:26:531092浏览

php json javascript

//连接数据库代码
$conn=mysql_connect("127.0.0.1","root","root") or die("连接数据库失败!");
mysql_select_db("resume2",$conn) or die("没有该数据库!");
mysql_query("SET NAMES utf8");

//将一个数组保存到数据库
$value=array("name"=>$_POST['job_name']);
$var=json_encode($value);
mysql_query("INSERT INTO `resume`(`job_id`, `job_pass_status`,job_content`)VALUES(NULL,1,'$var')",$conn);

//然后再从数据库读取刚才存入的数据
$query=mysql_query("SELECT * FROM `resume` WHERE `job_id`=10");  //刚才存入的id为10
$row=mysql_fetch_array($query);
$num=json_decode($row['job_content'],true);
echo $num['name'];

//问题,当我job_name为"张小白",输出$num['name']为"u6234u660eu534e",请大神看看哪里出问题了。为什么输出的不是"张小白这个名字呢?"

回复讨论(解决方案)

json只接受utf-8编码的字符,确认你的页面是utf-8编码。

json只接受utf-8编码的字符,确认你的页面是utf-8编码。

我在创建项目和html文件的时候是统一用utf-8的,用json_encode转码后保存到数据库,比如我写入的是"张小白",但是在数据库却是
"u6234u660eu534e"这样形式。读取数据库也只能读到"u6234u660eu534e"这个,不知道怎么将其转成"张小白"这种中文编码。

echo $_POST['job_name']; //正常吗

echo $_POST['job_name']; //正常吗

正常的

为什么是“张小白”呢?

$s = '"\u6234\u660e\u534e"';
echo json_decode($s); //戴明华

echo json_encode('张小白'); //"\u5f20\u5c0f\u767d"

可见您并没有准确的描述您的问题

问题,已得到解决。是mysql转意问题

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn