Php 未找到列:1054未知列'';在';字段列表';尝试更新数据库中的数据时出现错误消息

Php 未找到列:1054未知列'';在';字段列表';尝试更新数据库中的数据时出现错误消息,php,mysql,cakephp,cakephp-2.0,Php,Mysql,Cakephp,Cakephp 2.0,我正在使用CakePHP2.6中的控制台Shell脚本,该脚本在从提要检索元素时更新指定表中的数据 很遗憾,我从更新查询中得到一个错误: Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'GBP' in 'field list' $this->VendorCurrency->updateAll( $data, array( 'VendorCurrency.vendor_id

我正在使用CakePHP2.6中的控制台Shell脚本,该脚本在从提要检索元素时更新指定表中的数据

很遗憾,我从更新查询中得到一个错误:

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'GBP' in 'field list'
$this->VendorCurrency->updateAll(
    $data, 
    array(
        'VendorCurrency.vendor_id =' => $vendorid,                          
        'VendorCurrency.curr_to =' => $update['currency_code'], 
        'VendorCurrency.curr_from =' => self::BASE_CURRENCY
    )
 );
这是更新查询:

Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'GBP' in 'field list'
$this->VendorCurrency->updateAll(
    $data, 
    array(
        'VendorCurrency.vendor_id =' => $vendorid,                          
        'VendorCurrency.curr_to =' => $update['currency_code'], 
        'VendorCurrency.curr_from =' => self::BASE_CURRENCY
    )
 );
以及:

我对CakePHP相当陌生,所以请容忍我,如果这是一个愚蠢的问题,我是否做错了什么


谢谢,

我没有使用过CakePHP,但是看起来需要将数组值包装在单引号中才能使其工作

$datas=Array
(
[VendorCurrency.curr\u from]=>“英镑”
[VendorCurrency.curr\u to]=>“CAD”
[VendorCurrency.sell_rate]=>1.957
[VendorCurrency.buy_rate]=>2.028
)

来自:

$fields数组接受SQL表达式。应使用DboSource::value()手动引用文字值。例如,如果您的一个模型方法正在调用updateAll(),您将执行以下操作:

示例,以及文档中显示如何转义字段的示例:

$db = $this->getDataSource();
$value = $db->value($value, 'string');
$this->updateAll(
    array('Baker.something' => $value),
    array('Baker.active' => true)
);

此外,您的条件数组中不需要
=

您似乎有一些打字错误(
$datar
而不是
$datas
,并且
$datar
数组
之间缺少逗号)。他们只是在问题中,还是这是你的实际代码?是的,很抱歉我错抄了那句话,我更正了它,但错误并不是由此产生的。嗨,你能提供不仅仅是错误部分的查询吗?有什么不清楚的?我认为,如果你在第一段和示例之后不停止阅读,这是非常清楚的。fields数组接受sql表达式,-你在书中引用的示例。更新了它并为文档创建了一个问题报告。有一个公关悬而未决,+1。你可能有正确的想法,但很难说
我没有在CakePHP中工作过
-回答一些你不熟悉的问题可能不是一个好主意=)。