sql >> データベース >  >> RDS >> Mysql

json配列をサーバー側のphpに送信し、その値をテーブルに挿入する方法はありますか?

    json_decode()を呼び出す必要はありません 2回。デコードしたときにすでにデコードしました

    $decoded = json_decode($json);
    

    したがって、json_decode($item)を使用する必要はありません。 挿入するとき。

    trueを使用する json_decode()の2番目の引数 各アイテムのオブジェクトではなく、連想配列を作成するようにします。次に、その配列を$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. MariaDBの認定アソシエイトプログラムのメリットを引き出す

    2. 挿入が失敗するかどうかを確認するにはどうすればよいですか?

    3. phpmysqlサーバーがなくなりました

    4. MySQLでJoinを使用して削除