这个问题非常含糊不清.我的意思是,一方面,您可以序列化一个对象并将其插入数据库.但是,"插入对象"取决于上下文.例如,他是指你可以调用SQL语句这样的事实:
$a = new object();
// This makes no sense.
$sql = "Insert into table_name values($a);";
Run Code Online (Sandbox Code Playgroud)
如果这就是他所要求的,那么答案是否定的,除非你重写__toString()
返回要插入数据库的值的方法,否则你不能这样做.即使这样,该类也没有很好地定义,因为你说__toString()将是一个数据库值,但是没有引用类对象本身就没有明确定义或暗示.
但无论如何,如果Object表示数据库表等,那么您希望根据职责分离每个项目.例如,您可以拥有定义数据库表的对象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);
}
Run Code Online (Sandbox Code Playgroud)
以上内容对我来说最有意义,因为它清楚地定义了您期望的行为.您可以简单地使用管理器从数据库中获取项目,并修改对象,然后您可以再次调用管理器并插入,更新或删除.