Stack Overflow is a community of 4.7 million programmers, just like you, helping each other.

Join them; it only takes a minute:

Sign up
Join the Stack Overflow community to:
  1. Ask programming questions
  2. Answer and help your peers
  3. Get recognized for your expertise

Hi I'm trying to insert the json array into my MySQL database I'm new for this php development i have seen so many methods that all little confusing please help me out.

This is my json data.

[{"name":"0","phone":"dsf","city":"sdfsdf","email":"dsf"},{"name":"13123123","phone":"sdfsdfdsfsd","city":"sdfsf","email":"13123123"}]

I want to inset this json array into my mysql database so i have used this code its not working please tell me how to make it done. My php code.

<?php 

  $json = file_get_contents('php://input');
  $obj = json_decode($data,true);
  $obj[0]['name'];
  $obj[1]['phone'];
  $obj[2]['city'];
  $obj[3]['email'];

 //Database Connection
  require_once 'db.php';

 /* insert data into DB */
      mysql_query("INSERT INTO `db512172115`.`trial` (name, phone, city, email) 
      VALUES ('".$obj->{'name'}."', '".$obj->{'phone'}."', '".$obj->{'city'}."', '".$obj->{'email'}."')");

 //database connection close
   mysql_close($con);

   //}
  ?>

This above code only have used to store the values into my database please help me out to resolve this problem.

Thanks.

share|improve this question
    
Danger: You are using an obsolete database API and should use a modern replacement. You are also vulnerable to SQL injection attacks that a modern API would make it easier to defend yourself from. – Quentin Mar 19 '14 at 16:59
up vote 1 down vote accepted

Within your json_decode function you've specified 'true', this will make return an array.

You're then trying to access this information as an object, which won't work. Plus the fact that you are given two arrays back would suggest that you're going to need a foreach statement to insert both pieces of data in to the database.

Have another look in to foreach statements and arrays, there's plenty of information around to give you a hand.

For example:

$array = json_decode($data,true);

foreach($array as $item) {
    mysql_query("INSERT INTO `db512172115`.`trial` (name, phone, city, email) 
  VALUES ('".$item['name']."', '".$item['phone']."', '".$item['city']."', '".$item['email']."')");

}

To add on to this, you're using a deprecated mysql_* function, you should look in to using mysqli or PDO for increased security.

share|improve this answer
    
please tell where i have to use this foreach statement – user3427551 Mar 19 '14 at 17:05
    
I have edited my answer accordingly, it is untested, however, but should give you the general idea. – Karl Mar 19 '14 at 17:08
    
If this has helped, please give me an upvote, or if it solved the issue please make it as an accepted answer :) – Karl Mar 19 '14 at 17:24
    
i have used ur code but its still storing only empty value in my database please tell where im doing wrong. – user3427551 Mar 19 '14 at 17:29

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.