【问题标题】:A specific column is not being inserted when saving a record保存记录时未插入特定列
【发布时间】:2016-09-20 03:53:46
【问题描述】:

我正在使用 CakePHP 1.3.13。在这里,我编写了一个将表单插入数据库的代码。

这里,交易数据库表如下所示。

当我将记录插入数据库时​​,不会插入凭证代码列。

在这里,当我打印 $this->data 时,它将提供所有数据,例如:

Array
(
[Deal] => Array
    (
        [title] => Deal title
        [original_price] => 350
        [discount] => 45
        [total_price] => 192.5
        [voucher_code] => TEST3211
        [redeem_points] => 158
        [deal_details] => tetert
        [condition] => Testing
        [deal_address] => tertre
        [deal_end_date] => 2016-05-26
        [no_of_deals] => 10
        [merchant_id] => 24
        [image] => 146399768856085.jpg
    )

)

我在这里写了插入查询:

 $this->Deal->create();
 $this->Deal->save($this->data);

所以除了 voucher_code 之外的所有列都被插入。那么会出现什么错误呢?以及如何解决此错误?

【问题讨论】:

  • 猜想:voucher_code 列是最近才添加到架构中的,即最初创建表时它不存在?
  • @ndm 是的,我在建表后添加了这一列。

标签: php mysql cakephp cakephp-1.3


【解决方案1】:

只有那些存在于缓存数据库表模式中的列/字段将被保存,因此在 CakePHP 已经缓存它之后添加字段时,您必须清除缓存(删除app/tmp/cache/models)以便要识别的新列。

【讨论】:

    【解决方案2】:

    修改

    app/Config/core.php 
    Config::write('debug',2); 
    

    刷新页面并恢复

    Config::write('debug'); 
    

    恢复原值也可以。

    【讨论】:

      【解决方案3】:

      这是非常常见的问题,转到项目的 tmp 文件夹并删除模型和持久文件夹下的所有缓存,然后重新运行查询,它开始工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-04
        • 1970-01-01
        相关资源
        最近更新 更多