У меня есть строка JSON со мной
{"name":"jack","school":"colorado state","city":"NJ","id":null}
Мне нужно, чтобы он был сохранен в базе данных. Как я могу это сделать?
Мой PHP-код (я только установил соединение с MySQL, но я не могу сохранить записи)
<?php // the MySQL Connection mysql_connect("localhost", "username", "pwd") or die(mysql_error()); mysql_select_db("studentdatabase") or die(mysql_error()); // Insert statement mysql_query("INSERT INTO student (name, school,city) VALUES(------------------------- ) ") // (How to write this) or die(mysql_error()); echo "Data Inserted or failed"; ?>
Мы будем использовать json_decode документацию json_decode
Также не забудьте сбежать! вот как я буду делать это ниже …
/* create a connection */ $mysqli = new mysqli("localhost", "root", null, "yourDatabase"); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } /* let's say we're grabbing this from an HTTP GET or HTTP POST variable called jsonGiven... */ $jsonString = $_REQUEST['jsonGiven']; /* but for the sake of an example let's just set the string here */ $jsonString = '{"name":"jack","school":"colorado state","city":"NJ","id":null} '; /* use json_decode to create an array from json */ $jsonArray = json_decode($jsonString, true); /* create a prepared statement */ if ($stmt = $mysqli->prepare('INSERT INTO test131 (name, school, city, id) VALUES (?,?,?,?)')) { /* bind parameters for markers */ $stmt->bind_param("ssss", $jsonArray['name'], $jsonArray['school'], $jsonArray['city'], $jsonArray['id']); /* execute query */ $stmt->execute(); /* close statement */ $stmt->close(); } /* close connection */ $mysqli->close();
Надеюсь это поможет!
Это пример для помощи вам
<?php $json = '{"name":"jack","school":"colorado state","city":"NJ","id":null}';// You can get it from database,or Request parameter like $_GET,$_POST or $_REQUEST or something :p $json_array = json_decode($json); echo $json_array["name"]; echo $json_array["school"]; echo $json_array["city"]; echo $json_array["id"]; ?>
Надеюсь, эта помощь!
Декодируйте в массив и передайте его в mysql_query, код ниже не использует mysql_real_escape_string или любые другие средства безопасности, которые вы должны реализовать.
Предположим, что $ json есть {"name": "jack", "school": "colorado state", "city": "NJ", "id": null}
$json_array = json_decode($json);
Теперь у вас есть индексы в php-массиве, например: $ json_array ['name']
mysql_query("INSERT INTO student (name, school,city) VALUES('".$json_array['name']."', '".$json_array['school']."', '".$json_array['city']."') ") or die(mysql_error());