Как вставить данные Json в Mysql с помощью PHP

#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:

  1. Вы можете прочитать данные json с помощью приведенного ниже запроса на php.

    $testdata = file_get_contents(‘php://input’);

  2. Затем вы преобразуете данные JSON в массив.

    $arrdata = json_decode( $testdata, TRUE);

    $test1 = $arrdata[‘test1’]; $test2 = $arrdata[‘test2’]; $ test3 = $arrdata[‘test3’];

  3. Наконец, вы можете вставить данные в таблицу 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 = ‘{по форме отправки}’;