SQLSTATE[42S22]: 找不到列

SQLSTATE[42S22]: Column not found

我要更新记录:

<?php

use Phalcon\Mvc\Model;
use Phalcon\Mvc\Model\Query;

class Client extends Model {
    function modifierClient($tab) {

        $setColumns = "";
        $separateur = "";

        foreach ($tab as $k => $v){
          if ($k == 'clt_id')
            continue;
          $setColumns .= $separateur . 'c.' . $k . " = '" . $v . "'";
          $separateur = ",";
        }

        $sSQL = "UPDATE client c SET $setColumns WHERE c.clt_id = '".$tab['clt_id']."'";

        $query = new Query($sSQL, $this->getDI());
        $ret = $query->execute();

    }
}

$tab 数组有这些索引:

Array
(
    [clt_id] => 7
    [clt_cin_pass] => aaaaa
    [clt_nom] => aaaaaaaaa
    [clt_prenom] => aaaaaaaaaa
    [clt_tel] => aaaaaaaa
    [clt_adresse] => aaaaaaaa
    [clt_comment] => aaaaaaaaaayy
)

在运行时我得到这个错误:Exception: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'client.clt_id' in 'field list'

所以怎么了?

更新

这里是来自 phpMyAdmin 的 table 结构:

试试这个方法

$sSQL = "UPDATE client c SET ".$setColumns." WHERE clt_id = '".$tab['clt_id']."'";

我找到了解决方案:我在 SET 子句和 WHERE 中的每一列前加上 table 名称!