cakephp - 如何使用Hash类函数更新记录

时间:2015-04-07 14:53:00

标签: mysql cakephp

我是CakePhp的新手,想要更新记录。 我已成功从我的桌子中取出记录。

$SQL = "SELECT Id, Name FROM Table WHERE Id = '123';
return Hash::combine($this->query($SQL), '{n}.{n}.Id', '{n}.{n}');

以上代码正确返回记录。

表名:表_c
型号名称:Table.php
控制器名称:TablesController.php

我试过以下:

$sObjects = array();
$sObject = new stdClass();
$sObject->Id = 123; 
$sObject->Name = "abc";
array_push($sObjects, $sObject);
$result = $this->Table__c->save($sObjects);

给了我错误:在非对象上调用成员函数save()

之前我使用的是Salesforce,以下代码很好:

$this->query(array('update', $sObjects, 'Table__c'));

但是使用MySQL它会给我错误:
SQLSTATE [42000]:语法错误或访问冲突:1065查询为空

1 个答案:

答案 0 :(得分:0)

谢谢你们的评论我很感激。

答案:

如果您的表名和型号名称不匹配,请在模型类中添加:

var $useTable = 'Table_Name';

你可以使用那张桌子。

现在您将如何更新此表中的记录:

    $sObject = new stdClass();
    $sObject->Name = "'abc'";
    $sObject->Address = "'xyz'";

    $condition = array('Id' => "123");

    $this->updateAll((array)$sObject, $condition);

updateAll()函数将更新与$condition

匹配的记录