web-dev-qa-db-fra.com

Comment insérer un tableau json dans la base de données mysql

Salut, j'essaie d'insérer le tableau JSON dans ma base de données MySQL. Je passe les données sous forme de mon iphone, j’ai converti les données au format json et je les transmets à mon serveur à l’aide de l’URL qui ne s’insère pas dans mon serveur.

Ce sont mes données JSON.

[{"nom": "0", "téléphone": "dsf", "ville": "sdfsdf", "email": "dsf"}, {"nom": "13123123", "téléphone": "sdfsdfdsfsd "," ville ":" sdfsf "," email ":" 13123123 "}]

Ceci est mon code PHP.

<?php 

 $json = file_get_contents('php://input');
 $obj = json_decode($data,true);

 //Database Connection
require_once 'db.php';

 /* insert data into DB */
    foreach($obj as $item) {
       mysql_query("INSERT INTO `database name`.`table name` (name, phone, city, email) 
       VALUES ('".$item['name']."', '".$item['phone']."', '".$item['city']."', '".$item['email']."')");

     }
  //database connection close
    mysql_close($con);

   //}
   ?>

Mon code de connexion à la base de données.

   <?php

       //ENTER YOUR DATABASE CONNECTION INFO BELOW:
         $hostname="localhost";
         $database="dbname";
         $username="username";
         $password="password";

   //DO NOT EDIT BELOW THIS LINE
     $link = mysql_connect($hostname, $username, $password);
     mysql_select_db($database) or die('Could not select database');
 ?> 

S'il vous plaît dites où je me trompe dans le code ci-dessus. En gros, je ne suis pas un développeur php. Je suis un développeur d'applications mobiles. J'utilise donc le php en tant que script côté serveur. Dites-moi comment résoudre ce problème.

6
user3427551
 $json = file_get_contents('php://input');
 $obj = json_decode($json,true);

Je pense que vous passez la mauvaise variable. Vous devez passer $json dans json_decode comme indiqué ci-dessus.

7
Amit

Il n'existe pas de variable telle que $data. Essayer

$obj = json_decode($json,true);

Le repos a l'air bien. Si l'erreur persiste toujours, activez error_reporting.

4
web-nomad

Le fichier source JSON est manquant. Créez un fichier JSON puis assignez-le à var data:

<?php

require_once('dbconnect.php');

// reading json file
$json = file_get_contents('userdata.json');

//converting json object to php associative array
$data = json_decode($json, true);

// processing the array of objects
foreach ($data as $user) {
    $firstname = $user['firstname'];
    $lastname = $user['lastname'];
    $gender = $user['firstname'];
    $username = $user['username'];

    // preparing statement for insert query
    $st = mysqli_prepare($connection, 'INSERT INTO users(firstname, lastname, gender, username) VALUES (?, ?, ?, ?)');

    // bind variables to insert query params
    mysqli_stmt_bind_param($st, 'ssss', $firstname, $lastname, $gender, $username);

    // executing insert query
    mysqli_stmt_execute($st);
}

?>
3
Ocpd Manxoloh