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