public static function getRoutedSql($querys, $sql, $checkSession = true) { $obj = new Query(); $obj->setRequest($sql); $obj->setCheckSession($checkSession); // perform the route process return Request::routeRequest('POST', '/query', array(), Query::encodeQuery($obj), $querys, 'query'); }
/** * decodes $data to an object * * @param string $data json encoded data (decode=true) * or json decoded data (decode=false) * @param bool $decode specifies whether the data must be decoded * @todo support query arrays * * @return the object */ public static function decodeQuery($data, $decode = true) { /* if ( $decode && $data == null ) $data = '{}'; if ( $decode ) $data = json_decode( $data ); $isArray = true; if ( !$decode ){ if ($data !== null){ reset($data); if (current($data)!==false && !is_int(key($data))) { $isArray = false; } } else { $isArray = false; } } if ( $isArray && is_array( $data ) ){ $result = array( ); foreach ( $data AS $key => $value ){ $result[] = new Query( $value ); } return $result; } else return new Query( $data );*/ if ($decode && $data == null) { $data = '{}'; } if ($decode) { $data = json_decode($data, true); } if (is_array($data) && !isset($data['response']) && !isset($data['request']) && !isset($data['insertId'])) { $result = array(); foreach ($data as $key => &$value) { $obj = new Query(); if (isset($value['request'])) { $obj->setRequest($value['request']); unset($value['request']); } if (isset($value['response'])) { $obj->setResponse(json_decode($value['response'], true)); unset($value['response']); } if (isset($value['affectedRows'])) { $obj->setAffectedRows($value['affectedRows']); unset($value['affectedRows']); } if (isset($value['insertId'])) { $obj->setInsertId($value['insertId']); unset($value['insertId']); } if (isset($value['errno'])) { $obj->setErrno($value['errno']); unset($value['errno']); } if (isset($value['numRows'])) { $obj->setNumRows($value['numRows']); unset($value['numRows']); } if (isset($value['checkSession'])) { $obj->setCheckSession($value['checkSession']); unset($value['checkSession']); } $result[] = $obj; unset($value); } return $result; } else { $obj = new Query(); if (isset($data['request'])) { $obj->setRequest($data['request']); } if (isset($data['response'])) { $obj->setResponse(json_decode($data['response'], true)); unset($data['response']); } if (isset($data['affectedRows'])) { $obj->setAffectedRows($data['affectedRows']); } if (isset($data['insertId'])) { $obj->setInsertId($data['insertId']); } if (isset($data['errno'])) { $obj->setErrno($data['errno']); } if (isset($data['numRows'])) { $obj->setNumRows($data['numRows']); } if (isset($data['checkSession'])) { $obj->setCheckSession($data['checkSession']); } } return $obj; }