_getOne($sql, ['history_id'=>$id], $this->entityClass); } public function save($job_id, $user_id, $do_what_id, $meta=array()){ $a = []; $a['job_id'] = $job_id; $a['user_id'] = $user_id; $a['do_what_id'] = $do_what_id; $ary_json = ['job_id'=>$job_id, 'user_id'=>$user_id]; # MUST cover/satisfy ALL of DO_WHAT_MAPPING elements $a['do_what'] = replace_by_dic( self::$DO_WHAT_MAPPING[$do_what_id], $ary_json); $a['do_what_json'] = serialize(array_merge($ary_json, $meta)); $a['do_what_datetime'] = date('Y-m-d H:i:s'); $a['ip'] = $_SERVER['REMOTE_ADDR']; $a['ua'] = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $a['referer'] = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'no refer'; $sql = "INSERT INTO ".self::TBL." (job_id,user_id,do_what_id,do_what,do_what_json,do_what_datetime,ip,ua,referer) values (:job_id,:user_id,:do_what_id,:do_what,:do_what_json,:do_what_datetime,:ip,:ua,:referer)"; $stmt = $this->db->prepare($sql); $result = $stmt->execute($a); return $this->db->lastInsertId(); } }