PHP非法字符串

时间:2015-02-17 22:00:18

标签: php

$d = $_SESSION['post'];
    unset($_SESSION['post']);
    foreach($d as $k => $v) {
        \sys\CDatabase::query('UPDATE sportart SET
            name = "?name",
            reihenfolge = "?reihenfolge"
        WHERE sportart_id = "?id"',array(
            'name'=>$v['name'],
            'reihenfolge'=>$v['reihenfolge'],
            'id'=>$k
        ),'none');
    }

需要这个代码的快速帮助,每次我尝试它时都会出现错误

Illegal string offset 'name'

1 个答案:

答案 0 :(得分:0)

数组$d包含混合类型的值。其中一个值是一个字符串(一种模型名称,根据您的评论:"model" => "models\BackendSportartenAendern")。

因此错误:您正在尝试将字符串用作(子)数组。

修复代码的一种简单方法是修改循环,以便跳过非数组值:

foreach($d as $k => $v) {
    if (!is_array($v)) {
        continue;
    }

    \sys\CDatabase::query(...);
}