簡體   English   中英

如何使用php類函數將對象數據存儲在mysql db中?

[英]How to store the object data in mysql db using php class function?

我在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變量並將它們存儲到object然后在一個查詢中將整個對象添加到DB。

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

您可以修改函數中的任何內容

提前致謝!!!

在某個地方存儲整個對象的“簡單”解決方案,如在數據庫中,是將其序列化 - 即將其轉換為字符串; 然后,將該字符串存儲在數據庫的單個字段中。

這可以在PHP中使用serialize函數完成 - 並且將字符串反序列化為對象,您將使用unserialize函數。


另一個解決方案是將對象序列化為JSON格式 - 這很好用的是JSON可以直接從Javascript和許多不同的編程語言中使用,使用正確的庫。

對於JSON,請參閱json_encodejson_decode


作為旁注:請注意,如果將數據存儲為序列化字符串,則在SQL中操作它們將更加困難 :例如,您將無法使用簡單的SQL查詢更新它們; 搜索也很難。

這意味着您將始終必須從數據庫中獲取數據,使用PHP操作它們,然后將它們發送回數據庫 - 根據您的需要,這可能並不總是一個好主意。

我不確定你要求的是什么。 但也許......也許你正在尋找一個對象關系映射器(orm) ,比如教條

如果您希望將對象存儲在數據庫中,可以將對象serialize()json_encode()轉換為String,然后將其存儲在表中的字段中。

當您准備再次使用它時,您可以再次unserialize()json_decode()字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM