/** * Build a proper WHERE and return it * * @example * <code> * $array = ($verb, $field, $operator, $value, $type); * $this->build_where($array); * </code> * * @return VOID * * @since 2016-09-28 * @author Jim Harney <*****@*****.**> * @author Wesley Dekkers <*****@*****.**> **/ public function build_where($rule, $verb = true) { $field = \PDope\Utilities::escape_mysql_identifier($rule->field); $operator = $rule->operator; $token = $rule->token; if (is_object($rule)) { $field = \PDope\Utilities::escape_mysql_identifier($rule->field); $operator = $rule->operator; $token = $rule->token; if ($verb) { $sql .= " {$rule->verb} "; } if (is_array($token) && $operator == 'BETWEEN') { if (\PDope\Utilities::is_special_type($rule->type)) { throw new \Exception("PDopeCustomWhereBuilder get_where(), array, does not support special type [{$rule->type}]"); } $token_list = implode(", ", $token); $sql .= " {$field} {$operator} {$token[0]} AND {$token[1]}"; } elseif (is_array($token)) { if (\PDope\Utilities::is_special_type($rule->type)) { throw new \Exception("PDopeCustomWhereBuilder get_where(), array, does not support special type [{$rule->type}]"); } $token_list = implode(", ", $token); $sql .= "({$field} {$operator} ({$token_list}))"; } else { $token = \PDope\Utilities::translate_special_token($token, $rule->type); $sql .= "({$field} {$operator} {$token})"; } } return $sql; }
/** * builds the "INSERT" clause * * @example * <code> * $this->build_insert_values_sql(); * </code> * * @return VOID * * @since 2016-5-21 * @author Jim Harney <*****@*****.**> **/ private function build_insert_values_sql() { $fields_sql = ""; $values_sql = ""; for ($i = 0; $i < count($this->parameters); $i++) { $parameter = $this->parameters[$i]; if ($i == 0) { $fields_sql .= "\t "; $values_sql .= "\t "; } else { $fields_sql .= "\t, "; $values_sql .= "\t, "; } $fields_sql .= \PDope\Utilities::escape_mysql_identifier($parameter->name) . " \n"; $values_sql .= ":{$parameter->name} \n"; } $sql = "INSERT INTO {$this->table_name} \n"; $sql .= "( \n"; $sql .= $fields_sql; $sql .= ") \n"; $sql .= "VALUES \n"; $sql .= "( \n"; $sql .= $values_sql; $sql .= ") \n"; $this->sql .= $sql; // $this->log_debug("build_insert_values_sql() built \n$sql"); }