आपको json_decode()
call पर कॉल करने की आवश्यकता नहीं है दो बार। जब आपने किया था तब आपने इसे पहले ही डीकोड कर लिया था
$decoded = json_decode($json);
इसलिए आपको json_decode($item)
. का उपयोग करने की आवश्यकता नहीं है डालते समय।
true
का प्रयोग करें दूसरा तर्क json_decode()
ताकि यह प्रत्येक आइटम के लिए किसी ऑब्जेक्ट के बजाय एक सहयोगी सरणी बना सके। फिर आप उस सरणी को $p->execute()
. पर पास कर सकते हैं सीधे। आपको $decoded['tab']
. का भी उपयोग करना होगा $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);