sql >> Database >  >> RDS >> Mysql

Is er een manier om een ​​json-array naar server-side php te sturen en de waarden in een tabel in te voegen?

U hoeft json_decode() . niet aan te roepen tweemaal. Je hebt het al gedecodeerd toen je het deed

$decoded = json_decode($json);

dus u hoeft json_decode($item) . niet te gebruiken bij het invoegen.

Gebruik de true tweede argument voor json_decode() zodat het een associatieve array creëert in plaats van een object voor elk item. Dan kun je die array doorgeven aan $p->execute() direct. Je moet ook $decoded['tab'] . gebruiken in plaats van $decoded->tab .

<?php

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true ");
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header("Access-Control-Allow-Headers: X-Custom-Header, Origin, Content- 
Type , Authorisation , X-Requested-With");
header("Content-Type: application/json; charset=UTF-8 ");
$json = file_get_contents('php://input');
$decoded = json_decode($json, true);

$tab = $decoded['tab'];
function conn()
{
    $dbhost = "localhost";
    $user = "root";
    $pass = "";
    $db = "smart";
    $conn = new PDO('mysql:host=localhost;dbname=smart', $user, $pass);
    return $conn;
}
$db = conn();
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$p = $db->prepare("INSERT INTO regrouper (refCommande, refProduit, prixP, qteP)
                   VALUES(:refCmd,:refProduit,:prix,qte)");
foreach ($tab as $item) {
    $p->execute($item);
}
echo json_encode(true);



  1. Meerdere MySQL-instanties op één machine

  2. PL/SQL:hoe vraag ik gebruikersinvoer in een procedure?

  3. Groepering van een rij opheffen in veel rijen op basis van datumdelen

  4. Waarom krijg ik Ora-30004 als het scheidingsteken sys_connect_by_path niet aanwezig is in kolomwaarden?