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 member member_id of 1 ?
  • you aren't protecting against sql injection.
  • shouldn't member_list creating new member objects (or whatever class called) rather appending row data?

Comments

Popular posts from this blog

windows - Why does Vista not allow creation of shortcuts to "Programs" on a NonAdmin account? Not supposed to install apps from NonAdmin account? -

c++ - How do I get a multi line tooltip in MFC -

unit testing - How to mock PreferenceManager in Android? -