MySQL 是一個常用的關系型數據庫管理系統,可以用于存儲和管理各類數據。如果需要在 MySQL 中存儲對象數組,則可以使用 TEXT 類型的列進行存儲。
CREATE TABLE `my_table` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL,
`array_column` TEXT NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在上述代碼中,我們創建了一個名為 my_table 的表,包含三個列:id、name 和 array_column。其中,array_column 的類型為 TEXT,用于存儲對象數組。
以下是一個將對象數組轉換為 JSON 字符串并保存到 MySQL 中的示例 PHP 代碼:
<?php
$array = array(
array('name' =>'Tom', 'age' =>20),
array('name' =>'Jerry', 'age' =>18),
);
$json_str = json_encode($array);
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "mydb";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO my_table (name, array_column)
VALUES ('example', '$json_str')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "
" . $conn->error;
}
$conn->close();
?>
在上述代碼中,我們使用 PHP 中的 json_encode() 函數將對象數組轉換為 JSON 字符串,并通過 INSERT INTO 語句將其保存到 MySQL 中。
在讀取存儲的對象數組時,可以通過 SELECT 語句將 JSON 字符串查詢出來,并使用 json_decode() 函數將其轉換為對象數組。
SELECT array_column FROM my_table WHERE id=1;
// 返回 JSON 字符串 {"array":[{"name":"Tom","age":20},{"name":"Jerry","age":18}]}
$json_str = $result->fetch_assoc()['array_column'];
$array = json_decode($json_str, true); // 第二個參數為 true 則返回關聯數組,否則返回對象數組
使用以上方法,我們可以在 MySQL 中方便地存儲和管理對象數組。
上一篇mysql 存儲教程