【问题标题】:Generate wrong "Update" query cakephp生成错误的“更新”查询 cakephp
【发布时间】:2014-03-19 11:11:16
【问题描述】:

我正在尝试使用以下代码更新数据,但它生成了错误的 SQL 查询。不明白为什么它会产生错误的。请帮帮我。

$data = array();
$data['Pers']['etat'] = 1;
$data['Pers']['Activation'] = '';

$this->Pers->id = $results['Pers']['persID'];               
$this->Pers->save($data);   

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'bdr+.pers.persID' in 
 'where     clause'
 SQL Query: UPDATE `bdr+`.`pers` SET `etat` = 1, `Activation` = '', 
 `date_time` = '2014-03-19   11:33:21' WHERE `bdr+.pers.persID` = 37  

这意味着bdr+.pers.persID 生成错误。不明白为什么会这样生成。

【问题讨论】:

  • 请发布您的 Pers 模型文件

标签: cakephp cakephp-2.0


【解决方案1】:

检查这个 $results['Pers']['persID'] 变量是否返回正确的格式

那就试试这个

$data = array();
$data['Pers']['persID'] = $results['Pers']['persID'];
$data['Pers']['etat'] = 1;
$data['Pers']['Activation'] = '';    
//Just to make sure your model is loaded
$this->loadModel('Pers');
if ($this->Pers->save($data, false)) {   
    echo 'Pres has been saved :) ';   
} 

【讨论】:

  • 检查模型中的表名。听起来你的表名不正确。错误是:“bdr+.pers.persID”列不存在。您的列名应该是 pers.persID 而不是 'bdr+.pers.persID'
  • 其实是生成了错误的sql查询。我在模型中的表名是 public $useTable = 'pers';
  • 那你的型号叫什么?
  • 我的模特名字是“Pers”
【解决方案2】:

您的代码包含 bdr+.pers.persID` = '37',因为 $results['Pers']['persID'] 提供 37

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多