#php #mysql #arrays #json
#php #mysql #массивы #json
Вопрос:
Я хочу вставить данные JSON в один столбец в Mysql с помощью PHP
<input type="text" name="text1" />
<input type="text" name="text2" />
$jsondata = '[{"value1":{ "text":"text1", "text2":"text2"},"value1":{ "text":"text1", "text2":"text2"}}]';
INSERT INTO tablename (row) VALUES ($jsondata);
это возможно
или мы можем сгенерировать файл JSON, а затем импортировать, пожалуйста, направьте меня
Спасибо
Ответ №1:
-
Вы можете прочитать данные json с помощью приведенного ниже запроса на php.
$testdata = file_get_contents(‘php://input’);
-
Затем вы преобразуете данные JSON в массив.
$arrdata = json_decode( $testdata, TRUE);
$test1 = $arrdata[‘test1’]; $test2 = $arrdata[‘test2’]; $ test3 = $arrdata[‘test3’];
-
Наконец, вы можете вставить данные в таблицу MYSQL в соответствии с вашими требованиями.
$sql = ВСТАВИТЬ В значения tbl_test (test1, test2, test3) (‘$test1’, ‘$test2’, ‘$test3’); $result = mysqli_query ($db,$sql);
Это пример. вы можете изменять данные по своему усмотрению.
Ответ №2:
Проверьте этот код, это может вам помочь:
1 Прочитайте файл JSON на PHP:
PHP supports the function file_get_contents() which will read the entire file and returns it as a string.
//read the json file contents
$jsondata = file_get_contents('yourjsonfilename.json');
2 Преобразуйте строку JSON в массив PHP:
//convert json object to php associative array
$data = json_decode($jsondata, true);
The first parameter $jsondata contains the JSON file contents. The second parameter true will convert the string into PHP associative array.
3 Проанализируйте значения массива PHP и сохраните в переменных:
//get the details
$id = $data['Id'];
$name = $data['personal']['name'];
$age = $data['personal']['age'];
$streetaddress = $data['personal']['address']['streetaddress'];
$city = $data['personal']['address']['city'];
$state = $data['personal']['address']['state'];
$postalcode = $data['personal']['address']['postalcode'];
4 Вставьте JSON в базу данных MySQL с помощью PHP-кода Теперь мы вставим
извлеченные значения объектов JSON в таблицу MySQL, используя приведенный ниже запрос.
//insert into mysql table
$sql = "INSERT INTO tbl_students(studentId, name, age, streetaddress, city, state, postalcode)
VALUES('$id', '$name', '$age', '$streetaddress', '$city', '$state', '$postalcode')";
if(!mysqli_query($con, $sql))
{
die('Error : ' . mysql_error());
}
Теперь мы успешно импортировали данные JSON в базу данных MySQL, как показано ниже:
{
"Id": "ST001",
"personal": {
"name": "John Smith",
"age": "29",
"address": {
"streetaddress": "5 14th Street",
"city": "New York",
"state": "NY",
"postalcode": "12548"
}
}
}
Другой способ:
<?php
$josndata = '{
"student":{ "name":"Harry", "country":"United State", "ContactNo":2545454 }
}';
// Database connection
$conn = new mysqli('localhost', 'username', 'password', 'databasename');
// Insert data Query
$sql = "INSERT INTO student_table ( name, jsondata )
VALUES ('Harry', '$josndata')";
if ($conn->query($sql) === TRUE) {
echo "Insert your JSON record successfully";
}
?>
Комментарии:
1. хотите импортировать только в столбец, такой как строка таблицы student, student_value import student={name= имя, возраст = 1, класс = 2 и т. Д. Значение} Не несколько файлов
2. проверьте другое решение, которое я добавил в ответ
3. это не работает $sql = «ВСТАВИТЬ В ЗНАЧЕНИЯ student_table ( name ) ($ josndata)»;
4. запрос $sql = «ВСТАВИТЬ В student_table ( name, jsondata ) ЗНАЧЕНИЯ (‘Harry’, ‘$ josndata’)»
5. можем ли мы создать JSON-данные на той же странице из формы, а затем вставить $ josndata = ‘{по форме отправки}’;