Member 10334650 Ответов: 1

Использование json в PHP и хранение данных в mysql


Приветствую вас, я работал над нижеприведенным кодом. я потребляю json в php, я хочу получить данные и сохранить их в базе данных, пожалуйста, я новичок и нуждаюсь в некоторой помощи. приведенный ниже код не хранит никаких данных.

Я прошел через это, кажется, есть что-то, что нужно сложить,



<?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);
}

?>


Что я уже пробовал:

Это формат json, который должен быть использован

{ 
  "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\"}]"
}

1 Ответов

Рейтинг:
2

W∴ Balboos, GHB

Разбейте вашу проблему на части, чтобы выяснить, где она терпит неудачу.

например:

1) пытались ли вы повторить значение $sql, чтобы увидеть, что именно вы пытаетесь отправить на сервер?

2) Если у вас есть проблемы, такие как все (значения пусты), вы пробовали что-то вроде print_r () для разбираемого JSON?

3) работает ли ваше соединение с сервером?