Php 如何将json对象完全插入到表中
假设我有一个如下表:Php 如何将json对象完全插入到表中,php,mysql,sql,json,sql-insert,Php,Mysql,Sql,Json,Sql Insert,假设我有一个如下表: id| name | family ---+------+--------- 1 | iman | marashi 2 | mike | ... 3 | john | ... 4 | | {"name ":"will","family":"smith"} 我还有一个Json对象要插入到表中,如下所示: id| name | family ---+------+--------- 1 | iman | marashi 2 | mike | ..
id| name | family
---+------+---------
1 | iman | marashi
2 | mike | ...
3 | john | ...
4 | |
{"name ":"will","family":"smith"}
我还有一个Json对象要插入到表中,如下所示:
id| name | family
---+------+---------
1 | iman | marashi
2 | mike | ...
3 | john | ...
4 | |
{"name ":"will","family":"smith"}
如果表的字段和Json对象的键相同,如何将Json对象一起插入到表中
无需解析Json对象
我不想使用这种方法:
$name = $data["name"];
$family = $data["family"];
如果使用PDO,则可以提供关联数组来填充查询的参数
$query = $conn->prepare("INSERT INTO yourTable (name, family) VALUES (:name, :family)");
$data = json_decode($json_object, true);
$query->execute($data);
我认为,如果您正在运行PDO,Barmar提供了正确的答案 为了完整起见,您也可以完全使用MySQL,使用
json\u extract()
直接读取作为参数给出的json字符串:
insert into mytable (name, family) values(
json_unquote(json_extract(:js, '$.name')),
json_unquote(json_extract(:js, '$.family'))
);
:
create table mytable (
id int auto_increment primary key,
name varchar(50),
family varchar(50)
):
insert into mytable (name, family) values(
json_unquote(json_extract('{"name":"will","family":"smith"}', '$.name')),
json_unquote(json_extract('{"name":"will","family":"smith"}', '$.family'))
);
select * from mytable;
id |姓名|家庭
-: | :--- | :-----
1 |威尔|史密斯
您使用哪个后端存储到db?您正在运行哪个版本的MySQL?这看起来像是一个重复的问题,您是否使用支持JSON函数的MySQL版本?不需要在这里提供答案,我想除了
PDO
一个,这一个也涵盖了我。我认为,如果有合适的MySQL服务器版本,这种方法会更好。