Changeset 6995 for branches/2.4/prototype/services/PostgreSQL.php
- Timestamp:
- 08/10/12 18:39:42 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.4/prototype/services/PostgreSQL.php
r6754 r6995 52 52 $map = Config::get($uri['concept'], 'PostgreSQL.mapping'); 53 53 54 $criteria = ($criteria !== false) ? $this->parseCriteria ( $criteria , $map) : ''; 55 56 $justthese = self::parseJustthese($justthese, $map); 57 58 return $this->execSql( 'SELECT '.$justthese['select'].' FROM '. (Config::get($uri['concept'],'PostgreSQL.concept')) .' '.$criteria ); 54 $criteria = ($criteria !== false) ? $this->parseCriteria ( $criteria , $map) : ''; 55 56 $justthese = self::parseJustthese($justthese, $map); 57 58 return $this->execSql( 'SELECT '.$justthese['select'].' FROM '. (Config::get($uri['concept'],'PostgreSQL.concept')) .' '.$criteria ); 59 59 } 60 60 … … 63 63 $map = Config::get($uri['concept'], 'PostgreSQL.mapping'); 64 64 $justthese = self::parseJustthese($justthese, $map); 65 $criteria = ($criteria !== false) ? $this->parseCriteria ( $criteria , $map , ' WHERE '.$map['id'].' = \''. addslashes( $uri['id'] ).'\'') : ' WHERE '.$map['id'].' = \''.addslashes( $uri['id'] ).'\'';65 $criteria = ($criteria !== false) ? $this->parseCriteria ( $criteria , $map , ' WHERE '.$map['id'].' = \''.pg_escape_string( $uri['id'] ).'\'') : ' WHERE '.$map['id'].' = \''.pg_escape_string( $uri['id'] ).'\''; 66 66 67 67 return $this->execSql( 'SELECT '.$justthese['select'].' FROM '. (Config::get($uri['concept'],'PostgreSQL.concept')) .$criteria , true ); … … 70 70 public function deleteAll ( $uri, $justthese = false, $criteria = false ){ 71 71 $map = Config::get($uri['concept'], 'PostgreSQL.mapping'); 72 if(!self::parseCriteria ( $criteria , $map)) return false; //Validador para não apagar tabela inteira 73 return $this->execSql( 'DELETE FROM '.(Config::get($uri['concept'],'PostgreSQL.concept')).' '.self::parseCriteria ( $criteria ,$map) );72 if(!self::parseCriteria ( $criteria , $map)) return false; //Validador para não apagar tabela inteira 73 return $this->execSql( 'DELETE FROM '.(Config::get($uri['concept'],'PostgreSQL.concept')).' '.self::parseCriteria ( $criteria ,$map) ); 74 74 } 75 75 76 76 public function delete ( $uri, $justthese = false, $criteria = false ){ 77 77 if(!isset($uri['id']) && !is_int($uri['id'])) return false; //Delete chamado apenas passando id inteiros 78 $map = Config::get($uri['concept'], 'PostgreSQL.mapping'); 79 $criteria = ($criteria !== false) ? $this->parseCriteria ( $criteria , $map , ' WHERE '.$map['id'].' = \''.addslashes( $uri['id'] ).'\'') : ' WHERE '.$map['id'].' = \''.addslashes( $uri['id'] ).'\''; 80 return $this->execSql('DELETE FROM '.(Config::get($uri['concept'],'PostgreSQL.concept')).$criteria);78 $map = Config::get($uri['concept'], 'PostgreSQL.mapping'); 79 $criteria = ($criteria !== false) ? $this->parseCriteria ( $criteria , $map , ' WHERE '.$map['id'].' = \''.pg_escape_string( $uri['id'] ).'\'') : ' WHERE '.$map['id'].' = \''.pg_escape_string( $uri['id'] ).'\''; 80 return $this->execSql('DELETE FROM '.(Config::get($uri['concept'],'PostgreSQL.concept')).$criteria); 81 81 } 82 82 83 83 public function replace ( $uri, $data, $criteria = false ){ 84 84 $map = Config::get($uri['concept'], 'PostgreSQL.mapping'); 85 return $this->execSql('UPDATE '.(Config::get($uri['concept'],'PostgreSQL.concept')).' '. self::parseUpdateData( $data ,$map).' '.self::parseCriteria($criteria , $map)); 85 return $this->execSql('UPDATE '.(Config::get($uri['concept'],'PostgreSQL.concept')).' '. self::parseUpdateData( $data ,$map).' '.self::parseCriteria($criteria , $map)); 86 86 } 87 87 88 88 public function update ( $uri, $data, $criteria = false ){ 89 89 $map = Config::get($uri['concept'], 'PostgreSQL.mapping'); 90 $criteria = ($criteria !== false) ? $this->parseCriteria ( $criteria , $map , ' WHERE '.$map['id'].' = \''.addslashes( $uri['id'] ).'\'') : ' WHERE '.$map['id'].' = \''.addslashes( $uri['id'] ).'\'';91 92 return $this->execSql('UPDATE '.(Config::get($uri['concept'],'PostgreSQL.concept')).' '. self::parseUpdateData( $data ,$map).$criteria); 93 } 94 95 public function create ( $uri, $data ){ 96 return $this->execSql( 'INSERT INTO '.(Config::get($uri['concept'],'PostgreSQL.concept')).' '.self::parseInsertData( $data , $uri['concept'] ), true ); 90 $criteria = ($criteria !== false) ? $this->parseCriteria ( $criteria , $map , ' WHERE '.$map['id'].' = \''.pg_escape_string( $uri['id'] ).'\'') : ' WHERE '.$map['id'].' = \''.pg_escape_string( $uri['id'] ).'\''; 91 92 return $this->execSql('UPDATE '.(Config::get($uri['concept'],'PostgreSQL.concept')).' '. self::parseUpdateData( $data ,$map).$criteria); 93 } 94 95 public function create ( $uri, $data ){ 96 return $this->execSql( 'INSERT INTO '.(Config::get($uri['concept'],'PostgreSQL.concept')).' '.self::parseInsertData( $data , $uri['concept'] ), true ); 97 97 } 98 98 … … 197 197 if(!isset($map[$i])) continue; 198 198 199 $ind[] = $map[$i]; 200 $val[] = '\''.addslashes($v).'\''; 201 } 202 return '('.implode(',', $ind).') VALUES ('.implode(',', $val).') RETURNING '.$map['id'].' as id';203 } 199 $ind[] = $map[$i]; 200 $val[] = '\''.pg_escape_string($v).'\''; 201 } 202 return '('.implode(',', $ind).') VALUES ('.implode(',', $val).') RETURNING '.$map['id'].' as id'; 203 } 204 204 205 205 private static function parseUpdateData( $data , &$map){ … … 210 210 if(!isset($map[$i])) continue; 211 211 212 $d[] = $map[$i].' = \''. addslashes($v).'\'';212 $d[] = $map[$i].' = \''.pg_escape_string ($v).'\''; 213 213 } 214 214 … … 218 218 private static function parseCriteria( $criteria , &$map , $query = '' ){ 219 219 220 if( isset($criteria["filter"]) && $criteria["filter"] !== NULL ) 221 { 222 /* 223 * ex: array (224 * [0] 'OR', 225 * [1] array( 'OR', array( array( '=', 'campo', 'valor' ) ),226 * [2] array( '=', 'campo' , 'valor' ), 227 * [3] array( 'IN', 'campo', array( '1' , '2' , '3' ) ) 228 * ) 229 * OR 230 * array( '=' , 'campo' , 'valor' ) 231 */ 220 if( isset($criteria["filter"]) && $criteria["filter"] !== NULL ) 221 { 222 /* 223 * ex: array ( 224 * [0] 'OR', 225 * [1] array( 'OR', array( array( '=', 'campo', 'valor' ) ), 226 * [2] array( '=', 'campo' , 'valor' ), 227 * [3] array( 'IN', 'campo', array( '1' , '2' , '3' ) ) 228 * ) 229 * OR 230 * array( '=' , 'campo' , 'valor' ) 231 */ 232 232 $query .= ($query === '') ? 'WHERE ('.self::parseFilter( $criteria['filter'] , $map).')' : ' AND ('.self::parseFilter( $criteria['filter'] , $map).')'; 233 233 } … … 301 301 302 302 if( is_array($filter[1]) ) 303 return( $filter[0].' '.$op[0]." ($igPrefix'".implode( "'$igSuffix,$igPrefix'", array_map(" addslashes" , $filter[1]) )."'$igSuffix)" );304 305 return( $filter[0].' '.$op[0]." $igPrefix'".$op[1].addslashes( $filter[1] ).$op[2]."'$igSuffix" ); 303 return( $filter[0].' '.$op[0]." ($igPrefix'".implode( "'$igSuffix,$igPrefix'", array_map("pg_escape_string" , $filter[1]) )."'$igSuffix)" ); 304 305 return( $filter[0].' '.$op[0]." $igPrefix'".$op[1].pg_escape_string( $filter[1] ).$op[2]."'$igSuffix" ); 306 306 } 307 307
Note: See TracChangeset
for help on using the changeset viewer.