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服务器版本,这种方法会更好。