【发布时间】:2016-01-02 18:38:54
【问题描述】:
我需要将从 API 获取的对象保存到我自己的数据库中。唯一的问题是对象有大约...400 个不同的字段?我真的不想整天输入他们的定义,那么有没有办法获取一个对象并将每个键变成一个表列,然后将值作为插入插入?
【问题讨论】:
-
如果您愿意调整数据库架构以匹配对象字段,您可以使用像 Doctrine 这样的 ORM 来执行此操作。
标签: php mysql mass-assignment
我需要将从 API 获取的对象保存到我自己的数据库中。唯一的问题是对象有大约...400 个不同的字段?我真的不想整天输入他们的定义,那么有没有办法获取一个对象并将每个键变成一个表列,然后将值作为插入插入?
【问题讨论】:
标签: php mysql mass-assignment
假设对象是一维关联数组,这应该可行:
// Create a string like field1, field2, field3, ...
$column_list = implode(',', array_columns($object));
// Create placeholder string like :field1, :field2, :field3, ...
$placeholders = implode(',', array_map(function($col) {
return ":$col";
}, array_columns($object)));
// Put them into the SQL query
$sql = "INSERT INTO tablename ($column_list) VALUES ($placeholders)";
$statement = $pdo->prepare($sql);
// The object will then be used to supply values for the placeholders
$statement->execute($object);
【讨论】: