我有一个非常奇怪的问题......当我使用变量内部查询时,看起来我无法更新数据库(来自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
等,但没有任何帮助...
有什么想法吗?
答案 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进行了尝试 - 它确实有效。