Show
Ignore:
Timestamp:
10/07/08 20:34:25 (3 months ago)
Author:
nowelium
Message:

CRUD + procedure まで一通り終わり

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/php/misc/Hermit/src/Hermit/creator/HermitAutoUpdateSqlCreator.php

    r19682 r20924  
    55 */ 
    66class HermitAutoUpdateSqlCreator implements HermitSqlCreator { 
     7    private $sql; 
     8    private $query; 
    79    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; 
    844    } 
    945    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){ 
    1060    } 
    1161}