我應該使用__construct選項創建新記錄嗎?以下是我稱之爲「課程」的課程。我只會在25%的時間內「創造」一個課程,剩下的時間我會想要查找課程,而不是什麼。PHP OOP:使用構造創建新記錄
class Course {
private $db;
function __construct($db, $data) {
global $error, $mysqli;
$this->db = $db;
requireOrError($data['course_type_id'], "Course Type Required");
requireOrError($data['instructor_id'], "Instructor Required");
requireOrError($data['dz_name'], "DZ Name Required");
requireOrError($data['dz_address'], "DZ Address Required");
requireOrError($data['dz_city'], "DZ City Required");
requireOrError($data['dz_state'], "DZ State Required");
requireOrError($data['dz_zip'], "DZ Zip Required");
requireOrError($data['dz_email'], "DZ Email Required");
requireOrError($data['start_date'], "Course Start Date Required");
requireOrError($data['end_date'], "Course End Date Required");
requireOrError($data['student_slots'], "Number Of Student Slots Required");
if(! is_numeric($data['student_slots'])) {
$error[] = "Invalid Student Slots - Must be a number";
}
setError($error);
if(empty($error)) {
$add = $mysqli->query("INSERT INTO " . $this->db['courses'] . " (course_type_id, instructor_id, dz_name, dz_address, dz_city, dz_state, dz_zip, dz_email, start_date, end_date, student_slots, notes) VALUES ('$data[course_type_id]', '$data[instructor_id]', '$data[dz_name]', '$data[dz_address]', '$data[dz_city]', '$data[dz_state]', '$data[dz_zip]', '$data[dz_email]', '$data[start_date]', '$data[end_date]', '$data[student_slots]', '$data[notes]')");
redirectTo("instructors.php");
}
}
}
我打算創建一個名爲「getCourseInfo」的函數,我可以傳遞一個ID並返回課程對象。這是做這件事的最好方式,或者,我應該改變__construct行爲來創建。另外,你能否給我一個我將如何創建/查找的例子?
謝謝!
這是太忙了一個構造函數,並假定你總是想要插入一條記錄。爲什麼不簡單地讓構造函數做一些基本的設置,然後提供「createRecord」和「validateData」方法? – 2012-01-02 19:11:49