2012-05-05 211 views
0
$this->db->where('user_id', $agent_id); 
$result = $this->db->update('users', $update_array); 

上述代码更新数据库记录时数据的程序,如移动到更新 表:当所述地址数据捕获Codeigniter - 如何更新记录?

$upadte_array['us_address']="54 George street"; 

但是,上面的码不更新数据库记录从 的形式。

在这两种情况下,print_r($update_array);都显示数据存在,在两种情况下,$ result都等于1,这意味着更新成功。

感谢您的协助。

+1

请出示$ AGENT_ID和$ update_array –

+1

多少价值,你需要更新。如果你只想更新一个值,试着使用'$ this-> db-> set();' – Juice

回答

0

试试这个

$update_array = array(
       'us_address' => '54 George street' 
      ); 
$this->db->where('user_id', $agent_id); 
$result = $this->db->update('users', $update_array); 

OR

$this->db->update('users', $update_array, "user_id = {$agent_id}"); 
+0

这里有一个误解,我提到当我们移动程序中的数据时($ update_array ['us_address']] =“54 George street”)它正确​​更新,但是当从表单(监视器)捕获的数据不会更新数据库记录时。谢谢 – user1376064

+0

当数据从表单更新时,在更新之前调试并验证变量。当你从表单发布数据时你在做什么? –

+0

作为调试和验证变量的问题。我做print_r($ update_array);这显示了所有从窗体中正确捕获的数据,并且位于相关的变量中,但数据库记录使用空白字段进行更新,而当我执行$ update_array ['us_address'] =“54 George street”时;那么数据库记录会正确更新。这听起来更新查询不喜欢从表单中捕获的数据,但是print_r($ update_array);在两种情况下均可正确显示所有数据,无论是从窗体还是移动到程序中的变量中。感谢您的回复。 – user1376064

0

是您的代码的副本,并从你的源代码复制?因为如果是这样,你有一个错字:

$upadte_array['us_address']="54 George street"; 

应该

$update_array['us_address']="54 George street"; 
+0

是的,它可以解决问题。在我怀疑变量名称键入的时候,我复制了我确信其正确性的变量名,然后尝试通过编辑器查找变量的所有实例。 很多时候,一个实例没有突出显示,我删除并粘贴var名称而不是纠正它。 –

+0

你是对的,在这里有一个错字,但是这个错字不存在于程序中。请注意,当我们移动程序中的数据(如$ update_array ['us_address'] =“54 George street”)时,它会正确更新,但是当从from(监视器)捕获数据时,该值不会更新数据库记录。 – user1376064