我要求从PHP表格中将数据插入MySQL数据库方面提供一些帮助。
我有两张桌子' item'和'属性'。字段是:
node_t(double d, node_t * n = nullptr, node_t * p = nullptr)
: val (d),
next (n),
prev (p)
{}
" SKU"是每个项目的ID。并且" id"是'属性中每个属性的ID。 。 表格通过SKU列连接为主/密钥。
我知道可以将数据插入到以下几个表中:
items:
SKU, name, price, type
attributes:
SKU, id, SKU, key, value
但问题是我的第二个表格'属性'内容数据作为键值对。关键词包括' size',' height',' weight' etc ...和每个维度的整数值。而我无法输入$sql = "INSERT INTO items (column1, column2, column3) VALUES ('value1', 'value2', 'value3');
INSERT INTO attributes (column1, column2, column3) VALUES ('value1', 'value2', 'value3')";
如何将数据作为键值对插入表中?我需要插入大小,高度,宽度,长度,重量的数据。他们每个人都有自己的输入字段。我想从这个表单中提取数据并插入表 - 项和属性。
到目前为止,我已成功将数据插入'项目'那样:
INSERT INTO attributes (SKU, key, value) VALUES ('$SKU', '$size', '$height' ... etc)
但我无法伸出属性'表。这段代码不起作用。我试图插入'尺寸'只是为了检查这种方式是否有效:
$sql = "INSERT INTO items (SKU, name, price) VALUES ('$SKU', '$name', '$price')";
我们将不胜感激。提前谢谢!
答案 0 :(得分:0)
有2个问题
$sql = "INSERT INTO attributes (SKU, key, value) VALUES ('$SKU', 'size', '$size') ON items.SKU = attributes.SKU";
1)ON items.SKU = attributes.SKU
此语法不正确,不需要它。
2)您正在使用保留关键字“key”作为列名。为了做到这一点,你需要将它包含在反引号(`)
中这个sql应该可以工作:
$sql = "INSERT INTO attributes (SKU, `key`, value) VALUES ('$SKU', 'size', '$size')";
如果要插入多个属性,可以这样做:
$sql = "INSERT INTO attributes (SKU, `key`, value) VALUES
('$SKU', 'size', '$size'),
('$SKU', 'height', '$height'),
('$SKU', 'weight', '$weight')";