Вставка значений массива в 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); } ?> ?>