CakePHP无法保存到Postgres数据库中,但成功返回

时间:2017-02-17 16:34:35

标签: postgresql cakephp psql

之前是否有人遇到此问题?

在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并运行它,它确实会插入到表中。 我也试过使用saveMany,它没有做INSERTion,但仍然给我回复了成功的消息。

CakePHP中没有错误日志。 updateAll适用于UPDATE。现在我正在寻找sql INSERT

我甚至不能将 - >保存到一个包含单个字段的简单表中(字符变化(50)),没有触发器,什么都没有。返回成功消息但没有物理数据插入表中。

2 个答案:

答案 0 :(得分: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);

知道是否成功保存

答案 1 :(得分:0)

save($entity) 需要实体,您提供一个数组:

$this->loadModel('BankBalance');
$data = array("BankBalance"=> array(bla bla bla...);
$entity = $this->BankBalance->newEntity($data);
$result = $this->BankBalance->save($entity);