【问题标题】:How to store the object data in mysql db using php class function?如何使用 php 类函数将对象数据存储在 mysql db 中?
【发布时间】:2011-01-17 08:56:52
【问题描述】:

我在数据库中创建了一个名为“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 验证)的输入,现在在表单的操作页面中,我想将对象创建为 obj=new member();然后调用类函数为 obj->autherise($_post['zid']); 我想要 autherise 和 adduser 函数的定义,如 autherise 检查 zid 的唯一性,并使用剩余的 post 变量调用 adduser 并将它们存储到对象中,然后在一个查询中将整个对象添加到 DB。

我不想 insert into member(name,email,college,zid) values('$name,$email,$college,$zid') 我想直接输入obj到db

你可以修改函数中的任何东西

提前致谢!!!

【问题讨论】:

    标签: php mysql database oop class


    【解决方案1】:

    如果您希望将对象存储在数据库中,您可以将对象serialize()json_encode() 转换为字符串,然后将其存储在表中的字段中。

    当您准备好再次使用它时,您可以再次unserialize()json_decode() 字符串。

    【讨论】:

    • 其实我理解概念很好,但是写代码有问题
    • auth($_POST['uname'],$_POST['email'],$_POST['college'],$_POST['zid']); $student = addlashes(序列化($student)); mysql_query("INSERT INTO member(member) VALUES('$student')") or die("Sorry"); ?> 请检查一下!! :(
    【解决方案2】:

    将整个对象存储在某个地方(例如在数据库中)的“简单”解决方案是将其序列化——即将其转换为字符串;然后,将该字符串存储在数据库中的单个字段中。

    这可以在 PHP 中使用 serialize 函数来完成 - 并且要将字符串反序列化为对象,您将使用 unserialize 函数。


    另一种解决方案是将您的对象序列化为 JSON format - 这样做的好处是 JSON 可以直接从 Javascript 和许多不同的编程语言中使用,使用正确的库。

    对于 JSON,请参阅 json_encodejson_decode


    作为旁注:请注意,如果您将数据存储为序列化字符串,则在 SQL 中操作它们将会更加困难:例如,您将无法使用简单的 SQL 查询来更新它们;搜索也会很困难。

    这意味着您必须始终从数据库中获取数据,使用 PHP 对其进行操作,然后将它们发送回数据库——这可能并不总是一个好主意,具体取决于您的需要。

    【讨论】:

    • 根据您的回答,我需要制作 $obj=serialize($obj);那么什么是 sql 查询呢
    • 请回复我无法继续前进
    • auth($_POST['uname'],$_POST['email'],$_POST['college'],$_POST['zid']); $student = addlashes(序列化($student)); mysql_query("INSERT INTO member(member) VALUES('$student')") or die("Sorry"); ?> 请告诉我我做得对吗?
    【解决方案3】:

    我不确定你要的是什么。但也许......也许你正在寻找 object relational mapper (orm) ,例如doctrine.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 2016-09-01
      • 2015-01-01
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      相关资源
      最近更新 更多