解决json插入mysql后再读出使用json_decode()返回null问题

在开发在线考试系统时,遇到一个问题:将json数据存入MySQL后,读取并用json_decode()处理返回null。经过排查,发现MySQL在存储时将双引号转换为'"',导致json_decode()失败。解决方案是在解码前使用str_replace()函数替换'"'为双引号。
摘要由CSDN通过智能技术生成

问题背景:

本人在开发一个在线考试系统平台的过程中,需要根据前端部分选择传来的参数随机生成试卷。因为整份卷子的内容是动态的(不定长的),所以我想到使用json保存我的试卷内容方便在读出的时候使用。

随机生成试卷内容代码如下:

			$selected_tq = $test_question->where(array("ib_id"=>$_POST['ib_id']))->select();

			//随机在指定题型库中抽取指定数目的题目
			$key = array_rand($selected_tq, $_POST['each_tp_count']);

			//使用Jason存储试卷内容
			if ($_POST['each_tp_count'] == 1) {
				$t[0]['tq_content'] = $selected_tq[$key]['tq_content'];
				$t[0]['tq_id'] = $selected_tq[$key]['tq_id'];
				$t[0]['answer'] = $selected_tq[$key]['answer'];
				$_POST['tp_content'] = json_encode($t);

				// $_POST['tp_content'] = $selected_tq[$key]['tq_content'];

				// $_POST['tp_content'] = "{\"t1\":\"".$selected_tq[$key]['tq_content']."\"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值