首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更新数据库字段错误CodeIgniter

更新数据库字段错误CodeIgniter
EN

Stack Overflow用户
提问于 2012-07-01 11:08:17
回答 5查看 8.2K关注 0票数 13

我在CodeIgniter 2.1中收到以下错误消息:

代码语言:javascript
复制
A PHP Error was encountered

Severity: Notice

Message: Array to string conversion

Filename: database/DB_active_rec.php

Line Number: 1407

我正在尝试更新数据库中的字段。我有这个代码,每个教程都是一样的批量上传。无论如何,它都可以工作,但问题是它显示了这样一个错误。

这就是我的模型中的内容:

代码语言:javascript
复制
function update2($data){
   $this->db->update_batch('users',$data, "id");
}

下面是我的控制器中的内容:

代码语言:javascript
复制
public function updateValues(){
    $this->load->model('get_db');
    $newRow = array(
        array(
            'id' => '3',
            'firstname' => 'Rapphie'
        ),
        array(
            'id' => '2',
            'firstname' => 'Charmie'
        )
    );
    $this->get_db->update2($newRow);
    echo "it has been updated";
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-02 20:39:59

试一下,希望它能行得通

代码语言:javascript
复制
function update2($data){
   foreach($data as $string_val){
   $this->db->update_batch('users',$string_val, "id");
    }
}

代码语言:javascript
复制
function update2($data){
   foreach($data as $string_val){
   $this->db->update_batch('users',$string_val->first_name, "id");
    }
}
票数 -2
EN

Stack Overflow用户

发布于 2012-10-16 16:00:44

只是在这里碰巧遇到了完全相同的问题。幸运的是,我使用的是相同的CI版本。:)

确实,来自M_A_K的答案有助于删除“通知”,但我认为这不是解决问题的正确方案。所以我决定看看DB_active_rec.php中的1407行,我相信这只是CI 2.1.2中的一个小错误。

这是我的解决办法。我只是简单地修改了原始代码:

代码语言:javascript
复制
$not[] = $k.'-'.$v;

如下所示:

代码语言:javascript
复制
$not[] = $k2.'-'.$v2;

瞧!“通知”不再出现。:)

我们可以清楚地看到,1407行并不打算使用$k和$v,因为1407行位于一个将$v迭代为$k2和$v2的foreach循环中。

我希望我说得够清楚了。

票数 47
EN

Stack Overflow用户

发布于 2012-10-29 11:00:31

我刚刚意识到,像M_A_K建议的那样使用foreach的实际上超越了使用update_batch函数的目的。这是因为通过使用foreach,我们实际上是在对每个数组元素进行单次更新(而不是批处理)。这与在CodeIgniter中使用(单个)更新函数没有什么不同。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11279262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档