2

我正在一个网站上工作,我想在其中使用 PHP 和 MySQL。大多数情况下,我将数百个变量插入到我的 MySQL 数据库中,但我对此感到厌倦。我已经在互联网上搜索了解决方案,但没有任何成功。

我的网站使用面向对象的 PHP,我想将整个实例插入数据库。例子:

class User
{
     private $userID;
     private $username;
     // etc

     public function __construct($userID, $username)
     {
           $this->userID = $userID;
           $this->username = $username
     }

     // Other functions go here
}

我想知道是否可以将整个实例 ($user = new User($x, $y)) 保存到我的 MySQL 数据库中。如果可能,我需要什么字段类型?

提前致谢。

4

3 回答 3

2

您正在寻找的可能是 ORM(对象关系映射器),它允许您将对象直接映射到数据库中的表。

有几个 PHP ORM 可用,例如:

  • 学说,也许是使用最广泛的一种,
  • 推进
  • Redbean有一点不同的方法,但我非常喜欢那个方法。

您还应该意识到使用这样的库可能会对性能产生相当大的影响,但是使用缓存和其他解决方案可以减轻这种情况。

于 2012-07-25T17:49:14.663 回答
2

您应该以某种方式序列化对象并将其存储在文本字段中。您可以使用 PHP 的本机serialize() / unserialize(),或者,如果它们是简单的值对象,则可以使用json_encode() / json_decode()。有关两者的更多信息/比较,请参阅此线程

于 2012-07-25T17:53:32.703 回答
-1

您无法将实例保存到数据库中。因为实例是占用内存,使用编译器它保存类的状态。但是 Manu Letroll 提供了一个很好的解决方案,您应该使用 orm 来简化工作。

于 2012-07-25T17:56:14.143 回答