使用对象作为数据库表定义


Using an object as database table definition?

我需要将从API获取的对象保存到我自己的数据库中。唯一的问题是该对象具有。。。400个不同的领域?我真的不想整天都键入它们的定义,那么有没有一种方法可以把一个对象变成一个表列,然后把值作为插入插入?

假设对象是一维关联数组,这应该有效:

// 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);