Php ORA-01747错误,使用输入更新数据库

Php ORA-01747错误,使用输入更新数据库,php,oracle,Php,Oracle,我试图用输入更新数据库,但它返回我ORA-01747:无效的user.table.column、table.column或column规范。我不是sql方面的专家,但我看不到我的脚本有任何错误。我检查了,列名与我的数据库完全相同 有人认为这是个好主意吗 public function updateDepotMethodQuanti($params) { $sQuery = 'UPDATE depot SET depot.METHOD_SUP

我试图用输入更新数据库,但它返回我ORA-01747:无效的user.table.column、table.column或column规范。我不是sql方面的专家,但我看不到我的脚本有任何错误。我检查了,列名与我的数据库完全相同

有人认为这是个好主意吗

public function updateDepotMethodQuanti($params) {

    $sQuery = 'UPDATE depot 
        SET  
            depot.METHOD_SUPV = :0,
            depot.CODE_ETAB_RGLT = :3,
            depot.DATE_RGLT = :4,
            depot.MONTANT_RGLT = :5,
            depot.NUMERO_RGLT = :6,
            depot.COMMENTAIRE = :7,
            depot.BT_COMM_FACTU = :2,
        WHERE depot.ID_DEPOT = :1';

    // mise à jour method_supv
    $mResult1 = $this->executeQueries($sQuery,array($params['newMethodQuanti'], $params['idDepot'], $params['checkCommentaire'], $params['codeEtabliReglement'],
            $params['dateReglement'], $params['montant'], $params['numReglement'], $params['motifChangement']
            ));

    if ($mResult1 !== false) {
        $this->commit();
    } else {
        $this->rollback();
    }
}
函数executeQueries是一个函数,它允许我使用诸如
depot.METHOD\u SUPV=:0、

我的日志:

2019-03-08T11:35:25+01:00 ERR (3): Exception : array (
'code' => 1747,
'message' => 'ORA-01747: sp�cification utilisateur.table.colonne,table.colonne ou colonne non valide',
'offset' => 337,
'sqltext' => 'UPDATE depot 
        SET  
            depot.METHOD_SUPV = :0,
            depot.CODE_ETAB_RGLT = :3,
            depot.DATE_RGLT = :4,
            depot.MONTANT_RGLT = :5,
            depot.NUMERO_RGLT = :6,
            depot.COMMENTAIRE = :7,
            depot.BT_COMM_FACTU = :2,
        WHERE depot.ID_DEPOT = :1',
 )
 2019-03-08T11:35:25+01:00 ERR (3): Error parameter : array (
  0 => '2',
  1 => '22781811',
  2 => '1',
  3 => '542252',
  4 => '2019-02-25',
  5 => '42542',
  6 => '2452',
  7 => 's<fsdfsdf',
)
2019-03-08T11:35:25+01:00错误(3):异常:数组(
“代码”=>1747,
'消息'=>'ORA-01747:sp�使用规格表。科隆,表。科隆或科隆无效',
“偏移量”=>337,
'sqltext'=>'更新仓库
设置
depot.METHOD_SUPV=:0,
depot.CODE_ETAB_RGLT=:3,
depot.DATE_RGLT=:4,
depot.MONTANT_RGLT=:5,
depot.NUMERO_RGLT=:6,
depot.COMMENTAIRE=:7,
depot.BT_COMM_FACTU=:2,
其中depot.ID_depot=:1',
)
2019-03-08T11:35:25+01:00错误(3):错误参数:数组(
0 => '2',
1 => '22781811',
2 => '1',
3 => '542252',
4 => '2019-02-25',
5 => '42542',
6 => '2452',
7=>'s删除逗号,此处:

        depot.BT_COMM_FACTU = :2,     --> here
    WHERE depot.ID_DEPOT = :1
删除逗号,如下所示:

        depot.BT_COMM_FACTU = :2,     --> here
    WHERE depot.ID_DEPOT = :1

检查列的名称。使用命令:DESC DEPOT;调试嵌入式SQL非常困难,因此始终要先使用SQL Developer之类的数据库工具直接测试SQL。一旦知道有有效的SQL语句,就可以将其转换为PHP。此外,
[oracle]
[mysql]
是两种不同的RDBMS产品,虽然属于同一家公司。请使用正确的产品标记您的问题,这样您就可以获得所需的帮助,人们就不会浪费时间编写您无法使用的响应。请检查列的名称。使用命令:DESC DEPOT;调试嵌入式SQL非常困难,因此始终测试您的直接使用SQL Developer first之类的数据库工具执行SQL。一旦知道有有效的SQL语句,就可以将其转换为PHP。此外,
[oracle]
[mysql]
是两种不同的RDBMS产品,虽然属于同一家公司。请用正确的产品标记您的问题,这样您就可以获得所需的帮助,人们就不会浪费时间编写您无法使用的响应。我删除了逗号,出现了一个新错误,
ORA-01861:literal与格式字符串不匹配
这意味着您使用的“日期”值与日期格式不匹配。我建议您使用带有适当格式掩码的TO_date函数,例如
TO_date(:4,'yyyy-mm-dd')
(或您提供的任何格式)。我删除了逗号,出现了一个新错误,
ORA-01861:literal与格式字符串不匹配
这意味着“日期”您使用的值与日期格式不匹配。我建议您使用带有适当格式掩码的TO_date函数,例如
TO_date(:4,'yyyy-mm-dd')
(或您提供的任何格式)。