Codeigniter - 使用变量时无法更新数据库

时间:2015-06-23 12:19:24

标签: php mysql codeigniter

我有一个非常奇怪的问题......当我使用变量内部查询时,看起来我无法更新数据库(来自textarea字段)。 来自模型的样本:

这有效:

public function update_vendor_about ( $id, $txt )
{
    $data = array ( "vendor_about" => $txt, );        
    $this->db->where("id", $id);        
    $this->db->update("users", $data); 
} 

但是,这不起作用:

public function update_vendor_about ( $id, $txt )
{
    $data = array ( "vendor_about" => 'sometext', );        
    $this->db->where("id", $id);        
    $this->db->update("users", $data); 
}

来自控制器的呼叫:

$message = $this->input->post('profile_about');
$this->user_model->update_vendor_about ( $active_user_id, $message );

模型得到$txt好的,我可以看到并正确输出。 如果我手动编写整个UPDATE查询,也会发生同样的事情。

我认为问题可能出现在实际$txt内容中,所以我尝试使用trim()stripslashes(),替换\n\r等,但没有任何帮助...

有什么想法吗?

4 个答案:

答案 0 :(得分:0)

你的$ txt是key =>值数组。在访问阵列时指定密钥。

$data = array ( "vendor_about" => $txt["vendor_about"] );        
$this->db->where("id", $id);        
$this->db->update("users", $data); 

答案 1 :(得分:0)

似乎您在更新查询中错过了数组索引:

$data = array ("vendor_about"=>$txt['vendor_about']);        
$this->db->where("id",$id);        
$this->db->update("users",$data);

答案 2 :(得分:0)

使用echo $ this-> db-> last_query();您将获得查询,然后在phpmyadmin或sqlyog中运行它,您将收到错误消息,然后您可以解决它。

答案 3 :(得分:0)

好的,这个问题与服务器有关。 我刚刚在另一台服务器上使用Apache 2.4.9,PHP 5.5.12和MySQL 5.6.17进行了尝试 - 它确实有效。