PHP接收json 并将接收数据插入数据库的实现代码

PHP接收json 并将接收数据插入数据库的实现代码,第1张

最近有一个需求,前端向后台提交json,后台解析并且将提交的值插入数据库中,

难点

1、php解析json(这个不算难点了,网上实例一抓一大把)

2、解析json后,php怎样拿到该拿的值

<php

require

('connectphp');

/

本例用到的数据:

post_array={"order_id":"0022015112305010013","buyer_id":"2","seller_id":"1","all_price":"10000","json_list":[{"product_id":"3","product_number":"3"},{"product_id":"8","product_number":"2"},{"product_id":"10","product_number":"4"}]}

/

$post_array=$_POST['post_array'];

//--解析Json,获取对应的变量值

$obj=json_decode($post_array,TRUE);

$order_id

=

$obj['order_id'];

$buyer_id

=

$obj['buyer_id'];

$seller_id

=

$obj['seller_id'];

$all_price

=

$obj['all_price'];

$i=0;//循环变量

//--得到Json_list数组长度

$num=count($obj["json_list"]);

//--遍历数组,将对应信息添加入数据库

for

($i;$i<$num;$i++)

{

$list_product_id[]=$obj["json_list"][$i]["product_id"];

$list_product_number[]=$obj["json_list"][$i]["product_number"];

$insert_order_product_sql="INSERT

INTO

tbl_order_product

(order_id,product_id,product_number)

VALUES

(,,)";

$result

=

$sqlconn

->

prepare($insert_order_product_sql);

$result

->

bind_param("sss",

$order_id,$list_product_id[$i],$list_product_number[$i]);

$result->execute();

}

//--添加订单信息

$insert_order_sql="INSERT

INTO

tbl_order

(order_id,buyer_id,seller_id,all_price)

VALUES

(,,,)";

$result=$sqlconn->prepare($insert_order_sql);

$result->bind_param("ssss",$order_id,$buyer_id,$seller_id,$all_price);

$result->execute();

$result

->

close();

$sqlconn

->

close();

>

投稿者信息

昵称:

Hola

Email:

jamcistos@outlookcom

<script language="jscript" runat="server">  

Arrayprototypeget = function(x) { return this[x]; };  

function parseJSON(strJSON) { return eval("(" + strJSON + ")"); }  

</script>  

<%  

Dim json, obj  

json = "{a:""aaa"", b:{ name:""bb"", value:""text"" }, c:[""item0"", ""item1"", ""item2""]}"  

Set obj = parseJSON(json)    

ResponseWrite obja & "<br />"  '直接获取

ResponseWrite objbname & "<br />"  '获取指定key

ResponseWrite objclength & "<br />"  '获取条数

ResponseWrite objcget(0) & "<br />" 'C的第一条 

ResponseWrite objc & "<br />"  '获取全部

Set obj = Nothing  

%>

然后就是对应的更新到数据库就行了。

建议让JSON,整条的保存在数据库,取出来的时候这样解释就行了。。。

DELIMITER $$ USE `dw`$$ DROP FUNCTION IF EXISTS `fn_Json_getKeyValue`$$ CREATE DEFINER=`data`@`%` FUNCTION `fn_Json_getKeyValue`( in_JsonArray VARCHAR(4096),#JSON数组字符串 in_Index TINYINT, #JSON对象序号,序号从1开始 in_KeyName VARCHAR(64)#键名 ) RETURNS VARCHAR(512) CHARSET utf8 BEGIN DECLARE vs_return VARCHAR(4096); DECLARE vs_JsonArray, vs_Json, vs_KeyName VARCHAR(4096); #declare vs_Json varchar(4096); DECLARE vi_pos1, vi_pos2 SMALLINT UNSIGNED; #写监控日志 #insert into dwt_etl_log(sp_name, title, description) #values('dwfn_Json_getKeyValue', '通过Json键名取键值', concat('in_JsonArray=', in_JsonArray)); SET vs_JsonArray = TRIM(in_JsonArray); SET vs_KeyName = TRIM(in_KeyName); IF vs_JsonArray = '' OR vs_JsonArray IS NULL OR vs_KeyName = '' OR vs_KeyName IS NULL OR in_Index 0 THEN #如果键名存在 SET vi_pos1 = vi_pos1 + CHAR_LENGTH(vs_KeyName); SET vi_pos2 = LOCATE(',', vs_json, vi_pos1); IF vi_pos2 = 0 THEN #最后一个元素没有','分隔符,也没有结束符'}' SET vi_pos2 = CHAR_LENGTH(vs_json) + 1; END IF; SET vs_return = REPLACE(MID(vs_json, vi_pos1, vi_pos2 - vi_pos1), '"', ''); END IF; END IF; END IF; RETURN(vs_return); END$$ DELIMITER ; 测试: {"old_current_score":"2","new_current_score":"0","old_grade_id":"1","new_grade_id":"1","grade_time":"2016-04-09 00:43:26","grade_upgrade_time":"2017-04-09 00:43:26"} select fn_Json_getKeyValue(reason,1,'old_grade_id')

$post('/auditing/ajax_aud',{'start':$("#start")val()},function(msg)

{

//alert(msg);

//obj = eval (+msg+);

obj = eval ("(" + msg + ")");

$("#content")html(objcontent);

});

这样调用 不懂hi我

这个可以吧json格式的字符串解析成数组json_decode()函数,变成数组以后就可以方便 *** 作了,可以删除数组中的任意一项,也可以增加一项比如:array_push($data,['sort'=>3,'catentryId'=>10003]),再变成json格式的存入数据库。方法有多种,这里简单的示例下

以上就是关于PHP接收json 并将接收数据插入数据库的实现代码全部的内容,包括:PHP接收json 并将接收数据插入数据库的实现代码、asp 怎么接收post过来的json数据,解析出来后写入数据库、求救,mysql怎么解析json等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9760758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存