在PHP中使用json并在mysql中存储数据 [英] Consuming json in PHP and store data in mysql

查看:376
本文介绍了在PHP中使用json并在mysql中存储数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问候,一直在研究以下代码。我正在使用php中的json,我想获取数据并存储在数据库中,请为初学者并需要一些帮助。以下代码不存储任何数据。



我一直在经历,似乎有些东西要加起来,







 <?php  

if($ _SERVER [ REQUEST_METHOD] == POST&& $ _SERVER [ CONTENT_TYPE ] == application / json
{
$ json = file_get_contents( php://输入,false,stream_context_get_default(),0,$ _SERVER [ CONTENT_LENGTH]) ;
global $ _ POST_JSON ;
$ _ POST_JSON = json_decode($ _ REQUEST [ JSON_RAW]);

// 将JSON-Content合并到$ _REQUEST
if (is_array($ _ POST_JSON)) $ _ REQUEST = $ _POST_JSON + $ _ REQUEST;
}




// 数据库凭据的变量
$ host = localhost;
$ username = myusername;
$ password = pass;
$ database = mydb;

$ con = mysql_connect($ host,$ username,$ password);

if (!$ con)

{
echo mysql_error($ con);
exit();
}

// end make connections

// 连接数据库

if (!mysql_select_db($ con,$ database))

{

echo mysqli_error($ con);

exit();

}


foreach $ data as $ item

{
// 变量$ item用于迭代到$ con用于数据库连接
$ transactiontype = mysqli_real_escape_string($ CON,$本期特价货品> TransType);
$ transid = mysqli_real_escape_string($ con,$ item-> TransID);
$ transtime = mysqli_real_escape_string($ con,$ item-> TransTime);
$ transamount = mysqli_real_escape_string($ con,$ item-> TransAmount);
$ businessshortcode = mysqli_real_escape_string($ con,$ item-> BusinessShortCode);
$ billrefno = mysqli_real_escape_string($ con,trim($ item-> BillRefNumber));
$ invoiceno = mysqli_real_escape_string($ con,$ item-> InvoiceNumber);
$ msisdn = mysqli_real_escape_string($ con,$ item-> MSISDN);
$ orgaccountbalance = mysqli_real_escape_string($ con,$ item-> OrgAccountBalance);

foreach($ item-> KYCInfo as $ kycinfo)

{

if ($ kycinfo-> KYCName == ' [个人详细信息] [名字]'

{
$ firstname = mysqli_real_escape_string($ con,$ kycinfo-> KYCValue);

}

if ($ kycinfo-> KYCName == ' [个人详细信息] [中间名]'

{
$ middlename = mysqli_real_escape_string($ con ,$ kycinfo-> KYCValue);
}

if ($ kycinfo-> KYCName == ' [个人详细信息] [姓氏]'

{
$ lastname = mysqli_real_escape_string($ con,$ kycinfo- > KYCValue);
}

}
mysql_select_db($ con,$ database);
$ sql = INSERT INTO orocoke(
TransactionType,TransID,TransTime,TransAmount,BusinessShortCode, BillRefNumber,InvoiceNumber,MSISDN,First_Name,Middle_Name,
Last_Name,OrgAccountBalance)

VALUES('$ transactiontype','$ transid','$ transtime','$ transamount','$ businessshortcode','$ billrefno','$ invoiceno','$ msisdn','$ firstname',
'$ middlename','$ lastname','$ orgaccountbalance')
;

mysql_query($ sql);






mysql_close($ con);
}

?>





我尝试了什么:



这是要使用的json格式



 {
BusinessShortCode 2014022
Trans_Time 20140227082020
Trans_Amount 123.00
Trans_Type PayBill
MSISDN 254722703614
BillRefNumber vnascb90
< span class =code-string> OrgAccountBalance vnascb90
InvoiceNumber:< span class =code-string> vnascb90
Account_Number 12345556
KYCInfo [{\KYCName \:\[个人详细信息] [名字] \,\KYCValue \:\Hoiyor \\},{\KYCName \:\[个人详细信息] [中间名] \,\KYCValue \:\G \},{\KYCName \:\[个人详细信息] [姓氏] \,\KYCValue \:\陈\}]
}

解决方案

_SERVER [ REQUEST_METHOD] == POST&&


< blockquote> _SERVER [ CONTENT_TYPE] == application / json
{


< blockquote> json = file_get_contents( php:// input,false,stream_context_get_default( ),0,


Greetings, have been working on the below code. am consuming json in php, i want to get the data and store in a database, kindly am a beginner and need some help. the below code does not store any data.

I have been going through, it seems there is something to adding up,



<?php

if($_SERVER["REQUEST_METHOD"] == "POST" && $_SERVER["CONTENT_TYPE"] == "application/json")
{
  $json = file_get_contents("php://input", false, stream_context_get_default(), 0, $_SERVER["CONTENT_LENGTH"]);
  global $_POST_JSON;
  $_POST_JSON = json_decode($_REQUEST["JSON_RAW"]);
  
  // merge JSON-Content to $_REQUEST 
  if(is_array($_POST_JSON)) $_REQUEST   = $_POST_JSON+$_REQUEST;
}




//variables for database credentials
$host="localhost";
$username="myusername";
$password="pass";
$database="mydb";

$con = mysql_connect($host,$username,$password);

if (!$con)

{
echo mysql_error($con);
exit();
}

//end make connections

//connect to database

if (!mysql_select_db($con,$database ))

{

echo mysqli_error($con);

exit();

}


foreach ( $data as $item )

{
//variable $item is used for iteration to with the $con for database connection
$transactiontype=mysqli_real_escape_string($con,$item->TransType);
$transid=mysqli_real_escape_string($con,$item->TransID);
$transtime=mysqli_real_escape_string($con,$item->TransTime);
$transamount=mysqli_real_escape_string($con,$item->TransAmount);
$businessshortcode=mysqli_real_escape_string($con,$item->BusinessShortCode);
$billrefno=mysqli_real_escape_string($con,trim($item->BillRefNumber));
$invoiceno=mysqli_real_escape_string($con,$item->InvoiceNumber);
$msisdn=mysqli_real_escape_string($con,$item->MSISDN);
$orgaccountbalance=mysqli_real_escape_string($con,$item->OrgAccountBalance);

foreach($item->KYCInfo as $kycinfo)

{

if ($kycinfo->KYCName=='[Personal Details][First Name]' )

{
$firstname=mysqli_real_escape_string($con,$kycinfo->KYCValue);

}

if ($kycinfo->KYCName=='[Personal Details][Middle Name]' )

{
$middlename=mysqli_real_escape_string($con,$kycinfo->KYCValue);
}

if ($kycinfo->KYCName=='[Personal Details][Last Name]' )

{
$lastname=mysqli_real_escape_string($con, $kycinfo->KYCValue);
}

}
mysql_select_db($con,$database );
$sql="INSERT INTO orocoke(
TransactionType, TransID, TransTime, TransAmount, BusinessShortCode, BillRefNumber, InvoiceNumber, MSISDN, First_Name, Middle_Name,
Last_Name, OrgAccountBalance)

VALUES ('$transactiontype','$transid', '$transtime', '$transamount', '$businessshortcode', '$billrefno', '$invoiceno', '$msisdn', '$firstname',
'$middlename', '$lastname', '$orgaccountbalance' )";

mysql_query($sql);






mysql_close($con);
}

?>



What I have tried:

This is the json format that is to be consumed

{ 
  "BusinessShortCode": "2014022",
  "Trans_Time": "20140227082020",
  "Trans_Amount": "123.00",
  "Trans_Type": "PayBill",
  "MSISDN": "254722703614",
   "BillRefNumber": "vnascb90",
  "OrgAccountBalance": "vnascb90",
  "InvoiceNumber": "vnascb90",
  "Account_Number": "12345556",
  "KYCInfo": "[{\"KYCName\": \"[Personal Details][First Name]\", \"KYCValue\": \"Hoiyor\"}, {\"KYCName\": \"[Personal Details][Middle Name]\", \"KYCValue\": \"G\"}, {\"KYCName\": \"[Personal Details][Last Name]\", \"KYCValue\": \"Chen\"}]"
}

解决方案

_SERVER["REQUEST_METHOD"] == "POST" &&


_SERVER["CONTENT_TYPE"] == "application/json") {


json = file_get_contents("php://input", false, stream_context_get_default(), 0,


这篇关于在PHP中使用json并在mysql中存储数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆