Мне нужно сохранить объект, который я получаю от API, в свою собственную базу данных. Единственная проблема заключается в том, что объект имеет около 400 различных полей? Я действительно не хочу вводить свои определения в течение всего дня, так есть способ взять объект и превратить каждый ключ в столбец таблицы, а затем вставить значения в виде вставки?Использование объекта в качестве определения таблицы базы данных?
0
A
ответ
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);
Если вы хотите настроить схему базы данных, чтобы соответствовать полям объекта, можно использовать ORM, как доктрину, чтобы сделать это. –