我正在开发一个我想使用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数据库中。如果可能,我需要什么字段类型?
提前致谢。
答案 0 :(得分:2)
您正在寻找的可能是ORM(对象关系映射器),它允许您将对象直接映射到数据库中的表。
有几种PHP ORM可用,例如:
您还应该意识到使用这样的库可能会对性能产生很大影响,但使用缓存和其他解决方案可以减轻这种影响。
答案 1 :(得分:2)
您应该以某种方式序列化对象并将其存储在文本字段中。您可以使用PHP的原生serialize() / unserialize(),如果它们是简单的值对象,则可以使用json_encode() / json_decode()。有关详细信息/两者的比较,请参阅this thread
答案 2 :(得分:-1)
您无法将实例保存到数据库中。因为实例占用了使用编译器的内存,所以它保存了类的状态。然而,Manu Letroll给出了一个很好的解决方案,你应该使用orm来使工作更轻松。