Этот вопрос очень расплывчатый и неопределенный. Я имею в виду, с одной стороны, вы можете сериализовать объект и вставить его в базу данных. Однако «вставка объекта» зависит от контекста. Например, он ссылается на тот факт, что вы можете вызвать SQL-оператор, например:
$a = new object();
// This makes no sense.
$sql = "Insert into table_name values($a);";
Если это то, что он спрашивает, тогда ответ - нет, вы не сможете этого сделать, если не переопределите метод __toString()
, который возвращает значения, которые нужно вставить в базу данных. Даже в этом случае класс не определен должным образом, потому что вы говорите, что __toString () будет значением базы данных, но, тем не менее, это не определено или подразумевается без ссылки на сам объект класса.
В любом случае, если Объект представляет таблицы базы данных и т. Д., То вы хотите разделить каждый элемент на основе обязанностей. Например, вы можете иметь объект A, который определяет таблицу базы данных, а затем иметь объект B «менеджер», который вставляет, обновляет, удаляет и выбирает элемент из базы данных. Например:
// NOT REAL PHP CODE....
class Table_Name
{
// Define primary keys, foreign keys, and attributes of the table.
private $column1;
public function setColumn1($value);
public function getCOlumn1();
}
class Table_Name_Manager
{
public function insert(Table_Name $obj);
public function delete(Table_Name $obj);
public function select(Table_Name $obj);
}
Вышесказанное имеет для меня наибольшее значение, поскольку оно четко определяет поведение, которое вы ожидаете. Вы можете просто использовать менеджер, чтобы извлечь элементы из базы данных и изменить объект, затем вы можете снова вызвать менеджера и вставить, обновить или удалить.