我试图对数据库做一个简单的更新,但我收到了一个错误,我认为这是一个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
)
);
});
正如您所看到的,这是一个简单的更新,可能是我遗漏了一些东西
答案 0 :(得分:1)
您必须使用此findFirst
样式:
$query = Table::findFirstById($id);
或
如果你想使用你的方法,你必须写下这样的条件(where)语句:
$query = Table::findFirst("id = $id");
尝试一下&更新记录。