Мне нужно сохранить объект, который я получаю из API, в свою собственную базу данных. Единственная проблема в том, что объект имеет около... 400 разных полей? Я действительно не хочу вводить их определения весь день, поэтому есть ли способ взять объект и превратить каждый ключ в столбец таблицы, а затем вставить значения как вставку?
Использование объекта в качестве определения таблицы базы данных?
comment
Если вы хотите настроить схему базы данных в соответствии с полями объекта, вы можете использовать для этого ORM, например Doctrine.
- person Patrick Lee   schedule 02.01.2016
Ответы (1)
Предполагая, что объект представляет собой одномерный ассоциативный массив, это должно работать:
// 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);
person
Barmar
schedule
02.01.2016