我从一个页面获取到一个json字符串,然后将它转换为json数组再插入到数据库中,但插进去的都是空值,我确定能获取到json字符串。
include_once('inc/conn. $json_string=$_REQUEST["visitor"];
$addressInfo=json_decode( $json_string,TRUE);
$name=$addressInfo['name'];
$idcard=$addressInfo['idcrd'];
$visitedphone=$addressInfo['visitedphone'];
$address=$addressInfo['address'];
$visitedorganization=$addressInfo['visitedorganization'];
echo"1$visitedphone";
echo"2$address";
echo"3$visitedorganization";
$sql="insert into adress_list(name,idcrad,tel,adress,visitorganization)values('$name','$idcard','$visitedphone','$address','$visitedorganization'); ";
$rest=0;
$rest = mysql_query($sql);
echo mysql_error();
if($rest){
echo "恭喜,上传成功!";
}else{
echo "上传失败,请重新上传!";
}
//关闭数据库
mysql_close($con);
?>
这是我的代码 求大神指导,急求。。。
回复讨论(解决方案)
print_r($addressInfo);
看一下
print_r($addressInfo); 是什么结果
$addressInfo=json_decode( $json_string,TRUE);
如果是空,估计$json_string的值不是json格式,请检查此处。
很可能是引号问题。需要转义,否则的话SQL保错。
$sql="insert into adress_list(name,idcrad,tel,adress,visitorganization)values('".mysql_real_escape_string($name)."','".mysql_real_escape_string($idcard)."','".mysql_real_escape_string($visitedphone)."','".mysql_real_escape_string($address)."','".mysql_real_escape_string($visitedorganization)."'); ";
$addressInfo;//这个值应该判断下是否为空 然后再执行下面的逻辑比较好吧
调试的时候$addressInfo;的值
要怎么获取其中的name,idcard等的值呀,我用$name = $addressInfo[0]['name'];会报错
$name = $addressInfo['visitors'][0]['name']; 这样才行。
数组是这样的
$addressInfo = array( 'visitors' => array( array( 'visitedphone'' => '13333333333', 'organization' => '浙江大学', 'phone' => '13888888888', 'address' => '杭州市浙大路38号', 'name' => '张三', 'visitedname' => '李总', 'idcard' => '510181198209108435', 'visitedorganization' => '杭州网络科技有限公司' ), ));
你取数是这样: $name=$addressInfo['name'];
显然是不对了
少了一层 foreach 一下你就看到了
应该这样写
$addressInfo=json_decode( $json_string,TRUE);
$addressInfo=['visitors'][0];
一下是你原来的代码
是不是你获得的是对象object,不是数组array
$name = $addressInfo['visitors'][0]['name']; 这样才行。
谢谢啊 这样子就可以得到啦