- Timestamp:
- 10/07/08 20:34:25 (2 months ago)
- Location:
- lang/php/misc/Hermit/src/Hermit
- Files:
-
- 1 added
- 4 modified
-
creator/HermitAutoDeleteSqlCreator.php (modified) (1 diff)
-
creator/HermitAutoInsertSqlCreator.php (modified) (1 diff)
-
creator/HermitAutoUpdateSqlCreator.php (modified) (1 diff)
-
parameter/HermitSqlParameterClassHash.php (modified) (1 diff)
-
resultset/HermitUpdateQueryResultSet.php (added)
Legend:
- Unmodified
- Added
- Removed
-
lang/php/misc/Hermit/src/Hermit/creator/HermitAutoDeleteSqlCreator.php
r19682 r20924 5 5 */ 6 6 class HermitAutoDeleteSqlCreator implements HermitSqlCreator { 7 private $sql; 8 private $query; 7 9 public function initialize(PDO $pdo, ReflectionMethod $method, HermitAnnote $annote){ 10 $meta = HermitDatabaseMetaFactory::get($pdo); 11 $table = $annote->getTable(); 12 $info = $meta->getTableInfo($table); 13 $primaryKeys = $info->getPrimaryKeys(); 14 15 $sql = 'DELETE'; 16 $sql .= ' '; 17 $sql .= 'FROM'; 18 $sql .= ' '; 19 $sql .= $table; 20 $sql .= ' '; 21 $sql .= 'WHERE'; 22 $sql .= ' '; 23 foreach($primaryKeys as $pk){ 24 $sql .= ' '; 25 $sql .= $pk . '='; 26 $sql .= ' '; 27 $sql .= '/*' . $pk . '*/'; 28 $sql .= '"' . $pk . '"'; 29 $sql .= ' '; 30 $sql .= 'AND'; 31 } 32 $sql = substr($sql, 0, -3); 33 $this->sql = $sql; 8 34 } 9 35 public function createSql(){ 36 $sql = ''; 37 $sql .= $this->sql; 38 if(null !== $this->query){ 39 $sql .= ' '; 40 $sql .= 'WHERE'; 41 $sql .= ' '; 42 $sql .= $this->query; 43 } 44 return $sql; 45 } 46 public function addQuery($queryString){ 47 $this->query = $queryString; 48 } 49 public function addLimit($limit){ 10 50 } 11 51 } -
lang/php/misc/Hermit/src/Hermit/creator/HermitAutoInsertSqlCreator.php
r19682 r20924 5 5 */ 6 6 class HermitAutoInsertSqlCreator implements HermitSqlCreator { 7 private $insert; 7 8 public function initialize(PDO $pdo, ReflectionMethod $method, HermitAnnote $annote){ 9 $meta = HermitDatabaseMetaFactory::get($pdo); 10 $table = $annote->getTable(); 11 $info = $meta->getTableInfo($table); 12 $columns = $info->getColumns(); 13 $insert = 'INSERT INTO'; 14 $insert .= ' '; 15 $insert .= $table; 16 $insert .= ' ('; 17 $insert .= join(', ', $columns); 18 $insert .= ') VALUES ('; 19 foreach($columns as $column){ 20 $insert .= '/*' . $column . '*/'; 21 $insert .= '"' . $column . '"'; 22 $insert .= ','; 23 } 24 $insert = substr($insert, 0, -1); 25 $insert .= ')'; 26 $this->insert = $insert; 8 27 } 9 28 public function createSql(){ 29 return $this->insert; 10 30 } 11 31 } -
lang/php/misc/Hermit/src/Hermit/creator/HermitAutoUpdateSqlCreator.php
r19682 r20924 5 5 */ 6 6 class HermitAutoUpdateSqlCreator implements HermitSqlCreator { 7 private $sql; 8 private $query; 7 9 public function initialize(PDO $pdo, ReflectionMethod $method, HermitAnnote $annote){ 10 $meta = HermitDatabaseMetaFactory::get($pdo); 11 $table = $annote->getTable(); 12 $info = $meta->getTableInfo($table); 13 $primaryKeys = $info->getPrimaryKeys(); 14 $columns = $info->getColumns(); 15 16 $sql = 'UPDATE'; 17 $sql .= ' '; 18 $sql .= $table; 19 $sql .= ' '; 20 $sql .= 'SET'; 21 $sql .= ' '; 22 foreach($columns as $column){ 23 $sql .= $column . '='; 24 $sql .= '/*' . $column . '*/'; 25 $sql .= '"' . $column . '"'; 26 $sql .= ','; 27 } 28 // -1 eq strlen(',') 29 $sql = substr($sql, 0, -1); 30 31 $sql .= 'WHERE'; 32 $sql .= ' '; 33 foreach($primaryKeys as $pk){ 34 $sql .= ' '; 35 $sql .= $pk . '='; 36 $sql .= ' '; 37 $sql .= '/*' . $pk . '*/'; 38 $sql .= '"' . $pk . '"'; 39 $sql .= ' '; 40 $sql .= 'AND'; 41 } 42 $sql = substr($sql, 0, -3); 43 $this->sql = $sql; 8 44 } 9 45 public function createSql(){ 46 $sql = ''; 47 $sql .= $this->sql; 48 if(null !== $this->query){ 49 $sql .= ' '; 50 $sql .= 'WHERE'; 51 $sql .= ' '; 52 $sql .= $this->query; 53 } 54 return $sql; 55 } 56 public function addQuery($queryString){ 57 $this->query = $queryString; 58 } 59 public function addLimit($limit){ 10 60 } 11 61 } -
lang/php/misc/Hermit/src/Hermit/parameter/HermitSqlParameterClassHash.php
r18954 r20924 12 12 foreach($value as $index => $obj){ 13 13 foreach($this->bindKeys as $index => $key){ 14 $method = $this->reflector->getMethod('get' . ucfirst($key)); 15 $stmt->bindValue(':' . $key, $method->invoke($obj)); 14 if($obj instanceof HermitParam){ 15 $stmt->bindValue(':' . $key, $obj->get($key)); 16 } else { 17 $method = $this->reflector->getMethod('get' . ucfirst($key)); 18 $stmt->bindValue(':' . $key, $method->invoke($obj)); 19 } 16 20 } 17 21 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)