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

Php 使用对象作为数据库表定义?,php,mysql,mass-assignment,Php,Mysql,Mass Assignment,我需要将从API获取的对象保存到我自己的数据库中。唯一的问题是对象有大约…400个不同的字段?我真的不想整天都键入它们的定义,那么有没有办法获取一个对象并将每个键转换成一个表列,然后将值作为insert插入 假设对象是一个一维关联数组,这应该可以: // Create a string like field1, field2, field3, ... $column_list = implode(',', array_columns($object)); // Create placeholde

我需要将从API获取的对象保存到我自己的数据库中。唯一的问题是对象有大约…400个不同的字段?我真的不想整天都键入它们的定义,那么有没有办法获取一个对象并将每个键转换成一个表列,然后将值作为insert插入

假设对象是一个一维关联数组,这应该可以:

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

如果您愿意调整数据库模式以匹配对象字段,那么可以使用类似ORM的原则来实现这一点。