Mysql
 sql >> база данни >  >> RDS >> Mysql

Има ли все пак да изпратите json масив до php от страната на сървъра и да вмъкнете неговите стойности в таблица?

Не е необходимо да извиквате json_decode() два пъти. Вече сте го декодирали, когато сте го направили

$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);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. BIN() – Вземете двоичната стойност на число в MySQL

  2. mySQL:редактиране/запазване на my.cnf файл

  3. Python:MySQL връзката е отворена, но не може да създаде курсор

  4. PHP 7.2.2 + mysql 8.0 PDO дава:метод за удостоверяване, неизвестен на клиента [caching_sha2_password]

  5. Изпращайте данни към базата данни, когато щракнете върху връзка без опресняване на страницата