Вставка значений массива в MySQL с помощью PHP

Это краткое руководство о том, как вставить массив PHP в базу данных MySQL. Вы не можете напрямую вставлять значения массива в таблицу MySQL. Это не поддерживается. У нас есть четыре метода для вставки значения массива PHP в базу данных MySQL.

База данных MySQL

CREATE TABLE `products` (
  `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `name` varchar(80) NOT NULL,
  `price` varchar(255) NOT NULL,
  `status` varchar(255) NOT NULL,
  `pro_details` longtext COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Вариант 1. Повторяющийся запрос на вставку в каждой строке

<?php
$db_conn = mysqli_connect("localhost", "root", "", "codeat21");
$user_data  = array(
    "0" => array("Liam", "2700", "yes"),
    "1" => array("Noah", "6000", "no"),
    "2" => array("Oliver", "17000", "yes")
);
if(is_array($user_data)){
    foreach ($user_data as $row) {
        $val1 = mysqli_real_escape_string($db_conn, $row[0]);
        $val2 = mysqli_real_escape_string($db_conn, $row[1]);
        $val3 = mysqli_real_escape_string($db_conn, $row[2]);
        $query ="INSERT INTO products (name, price, status) VALUES ( '".$val1."','".$val2."','".$val3."' )";
        mysqli_query($db_conn, $query);
    }
}
?>

Вариант 2. Один запрос на вставку

<?php
$db_conn = mysqli_connect("localhost", "root", "", "codeat21");
$user_data  = array(
    "0" => array("Liam", "2700", "yes"),
    "1" => array("Noah", "6000", "no"),
    "2" => array("Oliver", "17000", "yes")
);
if(is_array($user_data)){
    $DataArr = array();
    foreach($user_data as $row){
        $val1 = mysqli_real_escape_string($db_conn, $row[0]);
        $val2 = mysqli_real_escape_string($db_conn, $row[1]);
        $val3 = mysqli_real_escape_string($db_conn, $row[2]);
        $DataArr[] = "('$val1', '$val2', '$val3')";
    }
    $sql = "INSERT INTO products (name, price, status) values ";
    $sql .= implode(',', $DataArr);
    mysqli_query($db_conn, $sql);
}
?>

Вариант 3. Сериализованная строка

<?php
$db_conn = mysqli_connect("localhost", "root", "", "codeat21");
$user_data  = array(
    "0" => array("Liam", "2700", "yes"),
    "1" => array("Noah", "6000", "no"),
    "2" => array("Oliver", "17000", "yes")
);
$serialized_data  = serialize($user_data);
$sql = "insert into products (pro_details) value ('$serialized_data')";
mysqli_query($db_conn, $sql);

/**
 *  Результат
 *  a:3:{i:0;a:3:{i:0;s:4:"Liam";i:1;s:4:"2700";i:2;s:3:"yes";}i:1;a:3:{i:0;s:4:"Noah";i:1;s:4:"6000";i:2;s:2:"no";}i:2;a:3:{i:0;s:6:"Oliver";i:1;s:5:"17000";i:2;s:3:"yes";}}
 *
 */

/**
 *  Получить данные из базы данных mysql
 */

<?php
$db_conn = mysqli_connect("localhost", "root", "", "codeat21");
$sql = mysqli_query($db_conn,"select pro_details from products");
while($row = mysqli_fetch_array($sql))
{
   $array = unserialize($row["pro_details"]);
   print_r($array);
}
?>

?>

Вариант 4. Строка JSON

<?php
$db_conn = mysqli_connect("localhost", "root", "", "codeat21");
$user_data  = array(
    "0" => array("Liam", "2700", "yes"),
    "1" => array("Noah", "6000", "no"),
    "2" => array("Oliver", "17000", "yes")
);
$json_data = json_encode($user_data);
$sql = "insert into products (pro_details) value ('$json_data')";
mysqli_query($db_conn, $sql);

/**
 * Результат
 * [["Liam","2700″,"yes"],["Noah","6000″,"no"],["Oliver","17000″,"yes"]]
 */

/**
 * Получить данные JSON из базы данных mysql
 */

<?php
$db_conn = mysqli_connect("localhost", "root", "", "codeat21");
$sql = mysqli_query($db_conn,"select pro_details from products");
while($row = mysqli_fetch_array($sql))
{
   $array = json_decode($row["pro_details"],true);
   print_r($array);
}
?>

?>


PHP PHPMySQL 5Array