我在DB中创建了一个名为“member”的表,其中包含字段“name”,“college”,“email”,“zid”,现在我创建了一个类(在php中),如
class member
{
private $name,$college,$email,$zid;
private function adduser
{
//function definition
}
public function autherise($id)
{
//function definition
}
}
现在在索引页面我将这些值作为来自用户的输入使用html表单(由JS验证)现在在表单的操作页面上我想创建对象as obj = new member();然后将类函数称为obj-> autherise($ _ post ['zid']); 我想要autherise和adduser函数的定义,如autherise检查zid的唯一性和调用adduser与剩余的post变量并将它们存储到对象然后在一个查询中将整个对象添加到DB。
我不想
insert into member(name,email,college,zid) values('$name,$email,$college,$zid')
我想直接输入obj到db
您可以修改功能中的任何内容
提前致谢!!!
答案 0 :(得分:12)
在一个地方存储整个对象的“简单”解决方案,比如在数据库中,是将它序列化 - 即将其转换为字符串;然后,将该字符串存储在数据库的单个字段中。
这可以在PHP中使用serialize
函数完成 - 并将字符串反序列化为对象,您将使用unserialize
函数。
另一个解决方案是将对象序列化为JSON format - 这很好用,可以直接从Javascript和许多不同的编程语言中使用JSON,使用正确的库。
对于JSON,请参阅json_encode
和json_decode
作为旁注:请注意,如果您将数据存储为序列化字符串,那么在SQL中操作它们将会更加更难:例如,您将无法使用简单的SQL查询更新它们;而且搜索也很难。
这意味着您将始终必须从数据库中获取数据,使用PHP操作它们,然后将它们发送回数据库 - 根据您的需要,这可能并不总是一个好主意。
答案 1 :(得分:3)
我不确定你要求的是什么。但也许......也许你正在寻找一个object relational mapper (orm),例如doctrine
答案 2 :(得分:0)
如果您希望将对象存储在数据库中,可以将对象serialize()
或json_encode()
转换为String,然后将其存储在表中的字段中。
当您准备再次使用它时,您可以再次unserialize()
或json_decode()
字符串。