我要求从PHP表单中将数据插入MySQL数据库方面提供一些帮助.
我有两个表’项’和’属性’.这些领域是:
items:
SKU, name, price, type
attributes:
SKU, id, SKU, key, value
“SKU”是每个项目的ID. “id”是“属性”中每个属性的ID.
表格通过SKU列连接为主要/二进制密钥.
我知道可以将数据插入到以下几个表中:
$sql = "INSERT INTO items (column1, column2, column3) VALUES ('value1', 'value2', 'value3');
INSERT INTO attributes (column1, column2, column3) VALUES ('value1', 'value2', 'value3')";
但问题是我的第二个表’属性’将内容数据作为键值对.诸如“大小”,“高度”,“重量”等键……以及每个维度的整数值.而且我不能只输入INSERT INTO属性(SKU,键,值)VALUES(‘$SKU’,’$size’,’$height’…等)
如何将数据作为键值对插入表中?我需要插入大小,高度,宽度,长度,重量的数据.它们中的每一个都在表单中有自己的输入字段.我想从这个表单中提取数据并插入表 – 项和属性.
到目前为止,我已成功将数据插入“项目”中,如下所示:
$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";
并且将不胜感激.先感谢您!
解决方法:
有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')";
标签:php,mysql,database,insert
来源: https://codeday.me/bug/20190710/1425535.html