Php 将多维数组插入MySQL表文本字段
我想在MySQL数据库字段中插入一个多维数组,这样以后就可以很容易地从数据库读回数组。实现这一目标的最佳方式是什么 我尝试了以下方法,但没有效果:Php 将多维数组插入MySQL表文本字段,php,mysql,sql,arrays,multidimensional-array,Php,Mysql,Sql,Arrays,Multidimensional Array,我想在MySQL数据库字段中插入一个多维数组,这样以后就可以很容易地从数据库读回数组。实现这一目标的最佳方式是什么 我尝试了以下方法,但没有效果: $id = "MXB-487" $items = Array(Array("Coffee", "Blend", "500"), Array("Coffee1", "Blend1", "250")); $items = implode(",", $items); mysqli_query($con,"INSERT INTO carts (id,
$id = "MXB-487"
$items = Array(Array("Coffee", "Blend", "500"), Array("Coffee1", "Blend1", "250"));
$items = implode(",", $items);
mysqli_query($con,"INSERT INTO carts (id, items)
VALUES ($id, $items)");
/*Code that pulls the array from the Database based on id and stores in variable $info*/
restored_mdarray = explode(",", $info);
使用
序列化:
$a = array(array(1,2,3), array(3,4,5));
$b = serialize($a);
# write $b to and later read $b from database
$c = unserialize($b);
$a == $c # => true
使用序列化:
$a = array(array(1,2,3), array(3,4,5));
$b = serialize($a);
# write $b to and later read $b from database
$c = unserialize($b);
$a == $c # => true
MySql中的ID通常是唯一的(我很确定您是这样指定的)。因此,您不能共享多个项目的ID。此外,内爆将以以下查询结束:
INSERT INTO carts (id, items) VALUES(MXB-487, Array, Array)
因为你有一个多维数组要内爆,所以它不会递归内爆
您应该做的是遍历对象,我不确定这里的关系是如何工作的,但看起来您需要一个关系表来连接这些项。考虑以下结构:
Carts:
+----------+-----------+
| ID | Name |
+----------+-----------+
--<-| MXB-487 | Blah blah |
| +----------+-----------+
|
| Items:
| +----------+-----------+----------+-----------+
| | Cart_ID | Type1 | Type 2 | Amount |
| +----------+-----------+----------+-----------+
--->| MXB-487 | Coffee | Blend | 500 |
+----------+-----------+----------+-----------+
您可以在以后选择:
<?php
$id = "MXB-487";
$sql = "SELECT * FROM actions WHERE (cart_id = '$id')";
MySql中的ID通常是唯一的(我很确定您是这样指定的)。因此,您不能共享多个项目的ID。此外,内爆将以以下查询结束:
INSERT INTO carts (id, items) VALUES(MXB-487, Array, Array)
因为你有一个多维数组要内爆,所以它不会递归内爆
您应该做的是遍历对象,我不确定这里的关系是如何工作的,但看起来您需要一个关系表来连接这些项。考虑以下结构:
Carts:
+----------+-----------+
| ID | Name |
+----------+-----------+
--<-| MXB-487 | Blah blah |
| +----------+-----------+
|
| Items:
| +----------+-----------+----------+-----------+
| | Cart_ID | Type1 | Type 2 | Amount |
| +----------+-----------+----------+-----------+
--->| MXB-487 | Coffee | Blend | 500 |
+----------+-----------+----------+-----------+
您可以在以后选择:
<?php
$id = "MXB-487";
$sql = "SELECT * FROM actions WHERE (cart_id = '$id')";
嘎,我也知道那个;我已经几个月没有使用PHP了,并将它的功能同化为“内爆”,真是个白痴!哈哈。非常感谢。不过我不建议您使用它,因为您似乎在尝试将数组附加到表中——这就是一对多关系的用途,也是关系数据库(a-LaMySQL)的用途。检查我的答案,寻找一个更智能的解决方案,它还允许您在以后的情况下索引这些行。然而,在有些情况下,不将每一点分解为关系是合理的。一些数据库在数据类型级别上意识到了这一点,最显著的是PostgreSQL,它具有数组、散列和专用结构(例如IP地址、坐标等);我已经几个月没有使用PHP了,并将它的功能同化为“内爆”,真是个白痴!哈哈。非常感谢。不过我不建议您使用它,因为您似乎在尝试将数组附加到表中——这就是一对多关系的用途,也是关系数据库(a-LaMySQL)的用途。检查我的答案,寻找一个更智能的解决方案,它还允许您在以后的情况下索引这些行。然而,在有些情况下,不将每一点分解为关系是合理的。一些数据库在数据类型级别上意识到了这一点,最显著的是PostgreSQL,它具有数组、散列和专用结构(例如IP地址、坐标等)。