Как сохранить данные объекта в MySQL DB с помощью функции класса PHP? - PullRequest
4 голосов
/ 16 февраля 2010

Я создал таблицу в БД с именем «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 и вызовов adduser с оставшимися переменными post и сохраняло их в объекте, а затем добавляло весь объект в одном запросе в DB.

Я не хочу insert into member(name,email,college,zid) values('$name,$email,$college,$zid') Я хочу ввести obj непосредственно в БД

Вы можете изменить что-либо в функциях

Заранее спасибо !!!

Ответы [ 3 ]

12 голосов
/ 16 февраля 2010

«Простое» решение для хранения целого объекта где-нибудь, как в базе данных, заключается в его сериализации - то есть преобразовать его в строку; и затем сохраните эту строку в одном поле в базе данных.

Это можно сделать в PHP, используя функцию serialize - и для десериализации строки в объект вы будете использовать функцию unserialize .


Другим решением будет сериализация вашего объекта в формате JSON - приятно то, что JSON можно использовать непосредственно из Javascript и из множества различных языков программирования, используя нужные библиотеки.

Для JSON см. json_encode и json_decode


В качестве пояснения: обратите внимание, что если вы будете хранить ваши данные в виде сериализованных строк, вам будет намного сложнее манипулировать ими в SQL: вы не сможете обновить их, например, с помощью простого запроса SQL; и поиск тоже будет трудным.

Это означает, что вам всегда придется извлекать данные из базы данных, манипулировать ими с помощью PHP и отправлять их обратно в базу данных - что не всегда может быть хорошей идеей, в зависимости от ваших потребностей.

3 голосов
/ 16 февраля 2010

Я не уверен, что вы просите. Но, может быть ... просто может быть, вы ищете объектно-реляционный картограф (orm) , например, например. Доктрина .

0 голосов
/ 16 февраля 2010

Если вы хотите сохранить объект в базе данных, вы можете serialize() или json_encode() объект в строку, а затем сохранить его в поле в таблице.

Когда вы будете готовы использовать его снова, вы можете unserialize() или json_decode() снова String.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...