ERROR SQLSTATE [HY093]当我尝试使用Phalcon进行$ query-> save()时

时间:2015-10-12 17:01:38

标签: php pdo phalcon

我试图对数据库做一个简单的更新,但我收到了一个错误,我认为这是一个PDO问题,但我找不到解决方案,我不知道是什么我可以做的更多,我使用Phalcon 2.0.7

错误:SQLSTATE [HY093]:参数号无效:绑定变量数与令牌数不匹配

示例网址:http://domain.com/controller/hide/8

在我的控制器上:

public function hideAction($id) {
    $query = Table::findFirst($id);
    $query->active = 0;
    $query->save();
}

但我也尝试了这个:

public function hideAction($id) {
    $query = Table::findFirst($id);
    $query->save([
        'active' => 0
    ]);
}

在我的模型上:

use Phalcon\Mvc\Model;

class Table extends Model {

   public $id;

   public $active;

   public $title;

   public function initialize() {

   }

   public function getSource() {
      return 'table_sample';
   }
}

我的数据库连接调度程序服务:

$di->set('db', function() use ($config) {
    return new \Phalcon\Db\Adapter\Pdo\Mysql(
        array(
        "host" => $config->db->host,
        "username" => $config->db->username,
        "password" => $config->db->password,
        "dbname" => $config->db->dbname
        )
    );
});

正如您所看到的,这是一个简单的更新,可能是我遗漏了一些东西

1 个答案:

答案 0 :(得分:1)

您必须使用此findFirst样式:
$query = Table::findFirstById($id);

如果你想使用你的方法,你必须写下这样的条件(where)语句:
$query = Table::findFirst("id = $id");

尝试一下&更新记录。