繁体   English   中英

如何获取json数组并插入数据库中。 的PHP

[英]How to get json array and insert in the database. php

我在邀请函上有一张桌子。 我正在以邮递员的json格式传递数据。

我想一次发送许多邀请。 所以我想插入多个邀请。

我怎样才能做到这一点?

我创建了一个邀请。

激励:

    class Invitation
{
    private $sender_id,$date,$invitee_no,$status;

    function Invitation($sender_id,$date,$invitee_no,$status)
    {

        $this->sender_id = $sender_id;
        $this->date= $date;
        $this->invitee_no = $invitee_no;
        $this->status = $status;

    }
    function sendInvite()
    {

        $database = new Database(ContactsConstants::DBHOST,ContactsConstants::DBUSER,ContactsConstants::DBPASS,ContactsConstants::DBNAME);
        $dbConnection = $database->getDB();

        $stmt = $dbConnection->prepare("select * from Invitation where invitee_no =?");
        $stmt->execute(array($this->invitee_no));
        $rows = $stmt->rowCount();

        if($rows > 0)
        {
            $response = array("status"=>-3,"message"=>"Invitation exists.");
            return $response;
        }

            $stmt = $dbConnection->prepare("insert into Invitation(date,invitee_no,status) values(?,?,?)");
            $stmt->execute(array($this->date, $this->invitee_no, $this->status));
            $rows = $stmt->rowCount();
            $Id = $dbConnection->lastInsertId();

            $stmt = $dbConnection->prepare("select * from Invitation where sender_id=?");
            $stmt->execute(array($Id));
            $invitation = $stmt->fetchAll(PDO::FETCH_ASSOC);

            if ($rows < 1) {
                $response = array("status" => -1, "message" => "Failed to send Invitation., unknown reason");
                return $response;
            } else {
                $response = array("status" => 1, "message" => "Invitation sent.", "Invitation:" => $invitation);
                return $response;
            }

    }
}

sendInvite.php

    <?php

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
ini_set('display_errors', '1');

require 'Invitation.php';

$jsonText = file_get_contents('php://input');

if(empty($jsonText))
{
    $response = array("status"=>-2,"message"=>"Empty request");
    die(json_encode($response));
}

$json = json_decode($jsonText);

$date= $json -> date;
$invitee_no = $json -> invitee_no;
$status = $json -> status;

$invitation = new Invitation("",$date,$invitee_no,$status);
$response = $invitation->sendInvite();

echo(json_encode($response));

?>

邮递员的输入:

{

"date" : "12/08/2016",
"invitee_no" : "5258",
"status" : "1"
}

输出:

   {
  "status": 1,
  "message": "Invitation sent.",
  "Invitation:": [
    {
      "sender_id": "29",
      "date": "12/08/2016",
      "invitee_no": "5259",
      "status": "1"
    }
  ]
}

编辑:

在Send Invite()函数中:

if ($rows < 1) {

        $response = array("status" => -1, "message" => "Failed to send Invitation., unknown reason");
        echo(json_encode($response));

    } else {
        $response = array("status" => 1, "message" => "Invitation sent.", "Invitation:" => $invitation);
        echo(json_encode($response));

    }

在senInvite.php文件中:

    foreach ($json as $jsn) {
    foreach($jsn as $j)
    {
        $date= $j -> date;
        $invitee_no = $j -> invitee_no;
        $status = $j -> status;
        $invitation = new Invitation("",$date,$invitee_no,$status);
        $response = $invitation->sendInvite();

        var_dump($response);
        die();

        echo(json_encode($response));
    }

}

var dump:

{"status":-3,"message":"Invitation exists.","invitee_no":"5856"}array(3) {
  ["status"]=>
  int(-3)
  ["message"]=>
  string(18) "Invitation exists."
  ["invitee_no"]=>
  string(4) "5856"
}

给出语法错误:未用字母'S'

我想将其作为json数组并将所有记录插入表中。

有人可以帮忙吗? 谢谢..

  <?php

   error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
   ini_set('display_errors', '1');

   require 'Invitation.php';

   $jsonText = file_get_contents('php://input');

   if(empty($jsonText))
   {
      $response = array("status"=>-2,"message"=>"Empty request");
      die(json_encode($response));
   }

$response = array();

   $json = json_decode($jsonText);
  foreach ($json as $jsn) {
   foreach($jsn as $j)
    {
      $date= $j -> date;
      $invitee_no = $j -> invitee_no;
      $status = $j -> status;
      $invitation = new Invitation("",$date,$invitee_no,$status);

       $response[] = $invitation->sendInvite();


    } 
 }
echo(json_encode($response));
 ?>

I have used foreach for array.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM