PHP类实例进入MySQL数据库

时间:2012-07-25 17:45:56

标签: php mysql

我正在开发一个我想使用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数据库中。如果可能,我需要什么字段类型?

提前致谢。

3 个答案:

答案 0 :(得分:2)

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

有几种PHP ORM可用,例如:

  • Doctrine,也许是使用最广泛的一个,
  • Propel
  • Redbean有一些不同的方法,但我非常喜欢那个。

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

答案 1 :(得分:2)

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

答案 2 :(得分:-1)

您无法将实例保存到数据库中。因为实例占用了使用编译器的内存,所以它保存了类的状态。然而,Manu Letroll给出了一个很好的解决方案,你应该使用orm来使工作更轻松。