我是 CakePhp 的新手,想要更新记录。 我已成功从我的表中获取记录。
$SQL = "SELECT Id, Name FROM Table WHERE Id = '123';
return Hash::combine($this->query($SQL), '{n}.{n}.Id', '{n}.{n}');
以上代码正确返回记录。
表名称:Table__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 查询为空
谢谢你们的评论,我很感激。
答案:
如果您的表名称和模型名称不匹配,请添加模型类:
var $useTable = 'Table_Name';
你可以使用那张桌子。
现在您将如何更新此表中的记录:
$sObject = new stdClass();
$sObject->Name = "'abc'";
$sObject->Address = "'xyz'";
$condition = array('Id' => "123");
$this->updateAll((array)$sObject, $condition);
updateAll() 函数将更新与
$condition
匹配的记录