【问题标题】:A Database Error Occurred Error Number: 2014 Commands out of sync; you can't run this command nowA Database Error Occurred 错误编号:2014 命令不同步;你现在不能运行这个命令
【发布时间】:2017-08-09 05:56:43
【问题描述】:

我正在使用简单的 codeigniter 模型函数来更新数据,并且我正在使用 REST_Controller。 codeigniter 数据库更新给出以下错误。

  <h1>A Database Error Occurred</h1>
                <p>Error Number: 2014</p>
                <p>Commands out of sync; you can't run this command now</p>
                <p>UPDATE `user` SET `fname` = 'testuser', `lname` = 'test', `age` = '18', `email` = 'test@testmail.com', `education` = 'University', `marital_status` = 'married' 
    WHERE `user_id` = '2'</p>
                <p>Filename: controllers/api/Users.php</p>
                <p>Line Number: 218</p>
            </div>

下面是我的codeigniter函数

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

require APPPATH . '/libraries/REST_Controller.php';

class Users extends REST_Controller

{

    /**
     * Constructor
     *
     *  @return void
     */
    function __construct()
    {
        parent::__construct();
        $this->load->model('User_model');        
        $this->lang->load('message', 'english');
    }

    public function updateuser(){
    $user_id = $_POST['user_id'];
    $data = array('fname'=>$_POST['fname'],
                            'lname'=>$_POST['lname'],
                            'age'=>$_POST['age'],
                            'email'=>$_POST['email'],
                            'education'=>$_POST['education'],
                            'marital_status'=>$_POST['marital_status']
                            );

                    $this->User_model->update($data,$user_id);
    }
}

我使用 MY_Model 时的第二个错误

  <h1>A Database Error Occurred</h1>
                <p>Error Number: 2014</p>
                <p>Commands out of sync; you can't run this command now</p>
                <p>SHOW COLUMNS FROM `user_preferences`</p>
                <p>Filename: core/MY_Model.php</p>
                <p>Line Number: 206</p>

下面是我的用户模型,扩展 MY_Model user_id 是主键

<?php 
class User_model extends MY_Model
{
    public $primary_key = 'user_id';

    //callbacks
    public $before_create = array('timestamps');
    public $before_update = array('update_timestamp');
    public $before_get = array('getbefore');

     /**
     * Create timestamps before new user created
     * @param  array $user
     * @return array
     */
    protected function timestamps($user)
    {
        $user['created_date'] = $user['updated_date'] = date('Y-m-d H:i:s');

        return $user;
    }



    /**
     * Update timestamp before update user details
     * @param  array $user
     * @return array
     */
    protected function update_timestamp($user)
    {
        $user['updated_date'] = date('Y-m-d H:i:s');

        return $user;
    }

    /**
    * Check Before get Data
    * check conditions before get user data
    * 
    */
    protected function getbefore(){
        $this->db->where('is_deleted','0');
    }

}
?>

有人对此有解决方案吗?提前致谢。

【问题讨论】:

标签: mysql database codeigniter


【解决方案1】:

更改方法名称更新与库方法相同

【讨论】:

  • 什么意思?
  • 什么意思?更新和图书馆一样意味着什么?我忘了告诉我正在使用 REST_Controller for api。
  • 是的,我知道,但是我可以在哪里更改用户模型或 MY_Model 中的方法名称?
  • 什么意思?
猜你喜欢
  • 2021-06-11
  • 2018-05-24
  • 1970-01-01
  • 2013-04-08
  • 2020-04-20
  • 1970-01-01
  • 1970-01-01
  • 2016-05-28
相关资源
最近更新 更多