Eh, bir veritabanı, öğrencileri temsil eden bir OO yöntemine geçmek isterseniz nasıl (bu herhangi bir şekilde tam bir ORM çok temel, ve olmasa da) aşağıda tanımı şöyle bir 'Öğrenci' sınıfı hakkında. Bir ActiveRecord yaklaşım tarzı yarım götürür.
Ben bir tamsayı id sütunu, yapmıyor yani bütün sınıf can sıkıcı yapan kullanacağı varsayılmaktadır unutmayın.
class Student {
var $id = -1;
var $name;
var $course;
var $year;
public static function newFromID ($id)
{
//fetch a row ($row) from the students table matching the given id
//perhaps returning false if the student doesn't exist?
return self::newFromRow($row);
}
// this method should return a new student object given a specific db row
// and should be called from newFromID. This function means that if the table
// changes, modifications only have to be made in one place
public static function newFromRow($row)
{
$obj = new Student();
//fill in the fields of the object based on the content of the row
return $obj;
}
public static function getAllStudents()
{
//perhaps return an array of student objects, by doing a broad select,
//and passing each row to newFromRow?
}
//this should save the object to the database, either inserting or updating as appropriate
public function save()
{
if($this->id == -1)
{
//insert, store the auto_increment id in $this->id
} else {
//update
}
}
}
Yani, yeni bir öğrenci oluşturmak ve veritabanına kaydetmek için:
$student = new Student();
$student->name = "John Smith";
$student->course = "French";
$student->year = 2;
$student->save();
Gerçekte, mevcut bir ORM sistemi kullanmak için genellikle daha mantıklı olduğunu, ancak bu bir seçenek değilse, kendi yazmayı düşünebilirsiniz.