调用未定义的方法Cake \ Database \ Log \ LoggingStatement :: bindParam()

时间:2018-01-22 14:47:44

标签: php cakephp stored-procedures

我遇到麻烦解决这个问题,我得到了

  

调用未定义的方法   蛋糕\数据库\ LOG \ LoggingStatement :: bindParam()

使用过程调用在数据库中保存数据时出错。

这是我的帖子方法代码......

if ($this->request->is('post')) {
$pi_classroom_name = $this->request->getData('classroom_name');
$pi_grade = $this->request->getData('grade');
$pi_subject = $this->request->getData('subject');
$pi_user_id = 1;
$sql = 'CALL jh_add_update_classroom(:pi_classroom_id,:pi_classroom_name,:pi_grade,:pi_subject,:pi_user_id,@po_classroom_id,@po_status,@po_status_message)';
$stmt = $this->connection->prepare($sql);
$stmt->bindParam(':pi_classroom_id', null, PDO::PARAM_STR);
$stmt->bindParam(':pi_classroom_name', $pi_classroon_name, PDO::PARAM_STR);
$stmt->bindParam(':pi_grade', $pi_grade, PDO::PARAM_STR);
$stmt->bindParam(':pi_subject', $pi_subject, PDO::PARAM_STR);
$stmt->bindParam(':pi_user_id', $pi_user_id, PDO::PARAM_STR);
$stmt->execute();
$stmt->closeCursor();
}

1 个答案:

答案 0 :(得分:1)

如错误消息所示,没有这样的方法。您不是在本机\PDOStatement对象上运行,而是在\Cake\Database\Log\LoggingStatement对象(扩展\Cake\Database\StatementInterface实现)上运行,正确的绑定方法是{{1} }或bind()

bindValue()

另见