Php class işlevini kullanarak db mysql nesne veri depolamak nasıl?

4 Cevap php

Ben adı "üye" alan "ad" olan, "kolej", "e-posta", "ZID" şimdi ben gibi (php) bir sınıf oluşturduk ile DB bir tablo oluşturduk

class member
{ 
 private $name,$college,$email,$zid;
 private function adduser
 {
    //function definition
 }
 public function autherise($id)
 {
    //function definition
 }
}

now at index page I am taking these value as input from user using html form(validated by JS) now at action page of form I want to create object as obj=new member(); then calling the class function as obj->autherise($_post['zid']); I want the defintion of autherise and adduser function like autherise check the uniqueness of zid and the calls adduser with remaining post variables and store them to object then add whole object in one query to DB.

I dont wan insert into member(name,email,college,zid) values('$name,$email,$college,$zid') I want to enter obj directly to the db

Siz fonksiyonları şey değiştirebilir

Şimdiden teşekkürler!

4 Cevap

Bir veritabanı gibi, bir yerde bir bütün nesnesini saklamak için bir "kolay" bir çözüm, serialize için - yani bir dizeye dönüştürmek; ve, daha sonra, veritabanında tek bir alanda bu dizeyi saklayın.

Bu serialize function – and to de-serialize the string to an object, you'll use the unserialize işlevini kullanarak, PHP, yapılabilir.


Another solution would be to serialize your object to the
JSON format – nice thing with that is that JSON can be used directly from Javascript, and from lots of different programming languages, using the right libraries.

JSON için json_encode and json_decode bakın


As a sidenote : note that if you store your data as serialized strings, it will be much harder to manipulate them in SQL : you will not be able to update them using a simple SQL query, for instance; and searching will be hard too.

Her zaman iyi bir fikir olmayabilir, hangi sizin ihtiyaçlarınıza bağlı olarak - Bu her zaman, veritabanından veri almak PHP ile bunları işlemek ve veritabanına onları geri göndermek zorunda olacak demektir.

Senin için ne soruyorsun emin değilim. Ama belki ... sadece belki örneğin gibi, bir object relational mapper (orm) arıyoruz doctrine.

ORM modeli etrafında ara ayrıntılı olarak inceleyin, size cevap bulacaksınız

Bir veritabanında bir nesne depolamak isteyen olsaydı yapabildin serialize() ya da bir dize json_encode() nesne ve ardından tablodaki bir alanda saklayın.

Tekrar kullanmaya hazır olduğunuzda yapabilirsiniz unserialize() veya json_decode() Dize tekrar.