Php 更新方法在codeigniter中不起作用

Php 更新方法在codeigniter中不起作用,php,mysql,codeigniter,Php,Mysql,Codeigniter,我在通过codeigniter更新方法更新数据库中的字段时遇到问题 我的控制器: $database = array( 'last_location' => $url[5]."-".$url[6], 'last_date_location' => $url[3]." ".$url[4], ); $user = $this->API_model->get_user($url[0]); pri

我在通过codeigniter更新方法更新数据库中的字段时遇到问题

我的控制器:

      $database = array(
        'last_location' => $url[5]."-".$url[6],
        'last_date_location' => $url[3]." ".$url[4],
      );

      $user = $this->API_model->get_user($url[0]);

      print_r($user);

      if ($this->db->update('user', $database , $user['id']) === true) {
        print_r($database);
        echo "MEI_TRUE";
      }else {
        echo "MEI_FALSE";
      }
浏览器返回
MEI_TRUE
表示数据库已成功更新,但当我在phpmyadmin中检查数据库时,未发生任何更改:(


有什么问题吗?

你能试试下面的方法吗

$database = array(
        'last_location' => $url[5]."-".$url[6],
        'last_date_location' => $url[3]." ".$url[4],
      );
$this->db->where('id', $user['id']);
$this->db->update('user', $database );
希望这将帮助您

它现在应该可以工作了

$database = array(
        'last_location' => $url[5]."-".$url[6],
        'last_date_location' => $url[3]." ".$url[4],
      );

      $user = $this->API_model->get_user($url[0]);

      print_r($user);
      $query = $this->db->where('id',$user['id'])
                        ->update('user', $database);
      if ($query) {
        print_r($database);
        echo "MEI_TRUE";
      }else {
        echo "MEI_FALSE";
      }

问题是-你想更新什么? update查询的第三个参数允许您将where子句作为字符串启用

尽管您的示例非常危险,但请尝试以下方法

if ($this->db->update('user', $database , "id = ".$user['id']) === true) 
{
    print_r($database);
    echo "MEI_TRUE";
}
else 
{
    echo "MEI_FALSE";
}
更好的方法是(正如达尼什已经提到的):

有关更多信息,请阅读文档

$blnUpdateSuccess = $this->db->where("id", $user['id'])->update("user",$database);

if ($blnUpdateSuccess) 
{
    print_r($database);
    echo "MEI_TRUE";
}
else 
{
    echo "MEI_FALSE";
}