2017-02-17 25 views
5

誰もこの問題に遭遇しましたか?CakePHPはPostgresデータベースに保存できませんが、成功した戻り値

CakePHPでは、これを持っています。

$this->loadModel('BankBalance'); 
    $data = array("BankBalance"=> array(bla bla bla...); 
    $this->BankBalance->save($data); 
    $log = $this->BankBalance->getDataSource()->getLog(false, false); debug($log); 

とデバッグ私に実際には、この

array(
'log' => array(
    (int) 0 => array(
     'query' => 'BEGIN', 
     'params' => array(), 
     'affected' => null, 
     'numRows' => null, 
     'took' => null 
    ), 
    (int) 1 => array(
     'query' => 'INSERT INTO bla bla bla...)', 
     'params' => array(), 
     'affected' => (int) 1, 
     'numRows' => (int) 1, 
     'took' => (float) 7 
    ), 
    (int) 2 => array(
     'query' => 'COMMIT', 
     'params' => array(), 
     'affected' => (int) 1, 
     'numRows' => (int) 1, 
     'took' => (float) 7 
    ) 
), 
'count' => (int) 3, 
'time' => (float) 14) 

を返し、行が返された成功のメッセージにもかかわらず、挿入されていませんでした。しかし、生成されたSQLをコピーして実行すると、本当にテーブルにINSERTします。 saveManyも使用しようとしましたが、INSERTを実行しませんでしたが、まだ成功しました。

CakePHPにエラーログはありません。 updateAllはUPDATEに対して正常に動作しています。そして、今私はSQLを探しています

私はさえできません - 単一のフィールド(文字の変化(50))、トリガー、何もない単純なテーブルに保存します。成功メッセージを返しますが、物理データはテーブルに挿入されません。

+0

データを最初に検証しようとすると、エラーが発生することがあります。 – urfusion

+0

@urfusionデータはきれいです。私は生成されたSQLをコピーしてから、pgAdminに貼り付けて実行しても問題ありません。 – Fire

+0

私は、 'set'メソッドを使ってcakephpモデルのバリデーションを検証することを意味します。 – urfusion

答えて

0

あなたがデータを挿入したい場合は、あなたがして、新しいものを作成する必要が

$this->BankBalance->create(); 

どこでも(冒頭最高)前

$this->BankBalance->save($data); 

を入れて、

if($this->BankBalance->save($data)){ 
    $log = $this->BankBalance->getDataSource()->getLog(false, false); 
    debug($log); 
} 
を置きます

の代わりに

$this->BankBalance->save($data); 
$log = $this->BankBalance->getDataSource()->getLog(false, false); debug($log); 

保存が正常に行われるかどうかを確認する

+0

提案された解決策は、コードの適切な構造に向かっている。それはまだ動作していない、あなたの環境で実行しようとしましたか?私はCakePHP&MYSQLで5年間働いていましたが、PostgresをDBとして使用して初めてのCakePHPです – Fire

+0

私はそれがpostgresqlであることに気付かなかったのです。$ this-> BankBalance-> create(); ' – Tianyi

+0

エラー:SQLSTATE [42601]:構文エラー:7エラーこのエラーメッセージが表示されます。 : "buildColumn"またはその近くの構文エラー、 - > createから - > buildColumn()への変更後のLINE 1:buildColumn^" – Fire

関連する問題