我请求一些帮助,关于从php表单向mysql数据库插入数据。
我有两个表“items”和“attributes”。字段包括:
items:
SKU, name, price, type
attributes:
SKU, id, SKU, key, value
“sku”是每个项目的id。“id”是“attributes”中每个属性的id。表通过sku列作为主键/辅键连接。
我知道可以像这样将数据插入多个表中:
$sql = "INSERT INTO items (column1, column2, column3) VALUES ('value1', 'value2', 'value3');
INSERT INTO attributes (column1, column2, column3) VALUES ('value1', 'value2', 'value3')";
但问题是,我的第二个表“attributes”以键值对的形式包含数据。像“尺寸”、“高度”、“重量”等键。。。每个维度的值都是整数。我不能只是打字 INSERT INTO attributes (SKU, key, value) VALUES ('$SKU', '$size', '$height' ... etc)
如何将数据作为键值对插入表中?我需要插入数据的大小,高度,宽度,长度,重量。它们在表单中都有自己的输入字段。我想从这个表单中提取数据并插入到表中-项和属性。
到目前为止,我已经成功地将数据插入“items”中,如下所示:
$sql = "INSERT INTO items (SKU, name, price) VALUES ('$SKU', '$name', '$price')";
但我无法接触“属性”表。这个代码不起作用。我尝试插入“size”只是为了检查这种方法是否有效:
$sql = "INSERT INTO attributes (SKU, key, value) VALUES ('$SKU', 'size', '$size') ON items.SKU = attributes.SKU";
我们会感激你的帮助。提前谢谢!
1条答案
按热度按时间cwtwac6a1#
有两个问题
ON items.SKU = attributes.SKU
此语法不正确,不需要它。2) 您正在使用保留关键字“key”作为列名。为了做到这一点,你需要把它用反记号(`)括起来
此sql应该可以工作:
如果要插入多个属性,可以这样做: