更新数据库中的单个记录CakePHP

ymzxtsji  于 2022-11-11  发布在  PHP
关注(0)|答案(1)|浏览(149)

我试图用函数“updateAll”更新数据库的一条记录,并通过一个“id”进行过滤。

$this->Factura->updateAll(
  array(
    'Factura.I_COBRADO' => $factura['Factura']['I_TOTAL'],
    'Factura.L_COBRADA' => 1,
    'Factura.FH_COBRO' => date('Y-m-d H:i:s'),
    'Factura.S_FORMAPAGO' => 'tarjeta',
    'Factura.FK_FORMAPAGOCOBRO' => 41
  ),
  array(
    'Factura.PK_FACTURA' => $factura['Factura']['PK_FACTURA'])
  )

但我得到这个错误:
错误:SQLSTATE[42000]:语法错误或访问冲突:1064 1064您的SQL语法有错误;请查看与您的MariaDB服务器版本对应的手册,以了解在第1行“15:10:55,Factura. S_FORMAPAGO = tarjeta,Factura. FK_FORMAPAGOCOBRO = 41”附近使用的正确语法
SQL查询:更新itramit_daily_desarrollo.将facturas作为Factura左联接将itramit_daily_desarrollo.将expedientes作为Expediente打开(Factura. FK_EXPEDIENTE = Expediente. PK_EXPEDIENTE)左连接itramit_daily_desarrollo. expedientes作为ExpedienteFactura打开(Factura. FK_EXPEDIENTE = ExpedienteFactura. PK_EXPEDIENTE)左连接itramit_daily_desarrollo. municipios作为Municipio打开(Factura. FK_MUNICIPIO = Municipio. PK_MUNICIPIO)左连接itramit_daily_desarrollo. valoraciones作为Valoracione打开(Factura. FK_VALORACION = Valoracione. PK_VALORACION)左连接itramit_daily_desarrollo. liquidaciones作为Liquidacione打开(Factura. FK_LIQUIDACION = Liquidacione. PK_LIQUIDACION)左连接itramit_daily_desarrollo. formaspagoscobros作为Formaspagoscobro打开(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)集合(一)

xtupzzrd

xtupzzrd1#

通过MySQL Workbench运行您的查询,我看到

Factura.FH_COBRO = 2021-08-16 15:10:55

是语法错误的原因。看起来CakePHP没有在数据值周围添加引号。
请尝试:

'Factura.FH_COBRO' => "'" + date('Y-m-d H:i:s') + "'",
'Factura.S_FORMAPAGO' => "'tarjeta'",

相关问题