php - Improving a constructor -
alright, i'm working on making member class website. want make optimized possible. currently, constructor can take ($resource) either int (to grab info 1 member in database, based on id) or array of ints (to grab multiple members database, , store them in array member variable).
i know if there inprovements can make block of code below, before move on creating more parts of website. changed make better? there better layout should follow doing kind of thing?
public function __construct($resource) { global $database; if (is_string($resource) || is_int($resource)) { $resource = (int)$resource; $query = $database->query("select * members member_id = {$resource} limit 1"); $row = $database->get_row($query); foreach ($row $key => $value) { $this->field[$key] = $value; } } else if (is_array($resource)) { $query = $database->query("select * members member_id in(" . implode(",",$resource) . ")"); while ($member = $database->get_row($query)) { $this->member_list[$member['member_id']] = $member; } } }
some thoughts:
- globals bad
- database calls should isolated data access layer, ideally of orm variety aren't writing manual sql.
- what if
$resource
"ddd"
, want membermember_id
of1
? - you aren't protecting against sql injection.
- shouldn't
member_list
creating newmember
objects (or whatever class called) rather appending row data?
Comments
Post a Comment