2017-02-08 15 views
0

Iこれは私のモデルにメソッドを保存します:この1でPhalconのOracle日時エラー

$this->fecha = date('d/M/y', strtotime($this->fecha)); 

:私はこの行を変更する場合、

public function save($data = null, $whiteList = null){ 
    $res = false; 
    $sql = ''; 
    $di = \Phalcon\DI::getDefault(); 
    try { 
     $param = array("[fecha] = to_date('" . $this->fecha . "', 'YYYY-MM-DD HH24:MI:SS') and [parametro_id] = :parametro_id:", 
         "bind" => array("parametro_id" => $this->parametro_id)); 
     $primero = Instantaneos::findFirst($param); 
     if ($primero){ 
      $this->instantaneo_id = $primero->instantaneo_id; 
     } else { 
      $sql = "select AZUL_S_INSTANTANEOS.nextval from dual"; 
      $result = $di->getShared('db')->query($sql); 
      while($row = $result->fetchArray()){ 
       $this->instantaneo_id = $row['NEXTVAL']; 
      } 
     } 
     $this->fecha = date('d/M/y', strtotime($this->fecha)); 
     $res = parent::save($data, $whiteList); 
     $res = true; 
    } catch (Exception $ex) { 
     $res = false; 
     $this->appendMessage(new Message($ex->getMessage())); 
    } 
    return $res; 
} 

そして、それは動作しますが、:

$this->fecha = date('d/M/y H:i:s', strtotime($this->fecha)); 

私はこのエラーを取得する:

SQLSTATE[HY000]: General error: 1830 OCIStmtExecute: ORA-01830: date format picture ends before converting entire input string 

(ext \ pdo_oci \ oci_statement.c:148) 私は時間情報を保存する必要があります。私は自分のsaveメソッドを作成しようとしています。

$sql_i = "insert into AZUL_INSTANTANEOS values(%d,%d,to_date('%s', 'YYYY-MM-DD HH24:MI:SS'),%f,'%s')"; 
    $sql_u = "update AZUL_INSTANTANEOS set val = %f, valf = '%s' where instantaneo_id = %d"; 

と使用は:私が使用している

Maximum execution time of 30 seconds exceeded in <b>\app\config\services.php</b> on line <b>172</b><br /> 

$db->execute($sql); 

しかし、私は別のエラーを取得

  1. XAMPP 1.8.2(PHPバージョン5.4.31、Apacheの/ 2.4.10(Win32の))
  2. Oracle Database 11gのEnterprise Editionのリリース11.2.0.1.0 - 生産
  3. Phalcon 2.1.0b

¿任意のアドバイス?、thx。

答えて

1

Oracleは、Phalconでは完全にサポートされていません。あなたが利用できるインキュベーターhereに位置するドライバーがあります。

また、PhalconのPHQLで認識されない構文もあります。

まず、アプリケーションにSQL文のログを追加して、データベースに送信されている内容を確認してから修正する方法を理解することをお勧めします。

thisページを見てください、それがLogging SQL Statements

はそれを追加して、クエリで何が起こっているかを見ていると言うところまでスクロールします。