在PHP中使用json并在mysql中存储数据 [英] Consuming json in PHP and store data in mysql
本文介绍了在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
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屋!
查看全文