Мне нужно сохранить объект, который я получаю из 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);
Других решений пока нет …