mysql 键值对_Php,MySql – 将数据作为键值对插入两个表中

我要求从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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值