2016-01-02 2 views
0

Мне нужно сохранить объект, который я получаю от API, в свою собственную базу данных. Единственная проблема заключается в том, что объект имеет около 400 различных полей? Я действительно не хочу вводить свои определения в течение всего дня, так есть способ взять объект и превратить каждый ключ в столбец таблицы, а затем вставить значения в виде вставки?Использование объекта в качестве определения таблицы базы данных?

+0

Если вы хотите настроить схему базы данных, чтобы соответствовать полям объекта, можно использовать ORM, как доктрину, чтобы сделать это. –

ответ

0

Предполагая, что объект является одномерным ассоциативным массивом, это должно работать:

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