Php odbc数组中的行为';t正确显示索引和变量,字符串偏移量非法

Php odbc数组中的行为';t正确显示索引和变量,字符串偏移量非法,php,arrays,Php,Arrays,我不确定我在这里做了什么,但我一直在尝试运行这个select,获取行值,并使用foreach来调用一个函数,该函数使用这些值(作为函数的参数)进行后续插入 我得到了非法的字符串偏移量错误和未定义的变量,所以我将其转储到如下所示的数组中 我如何正确地修改它以获得“PR”=“ABCD”等等 public function ref() { $sql = "select cast(co as DECIMAL) as co, cast(sl as DECIMAL)as sl, cast(pr

我不确定我在这里做了什么,但我一直在尝试运行这个select,获取行值,并使用foreach来调用一个函数,该函数使用这些值(作为函数的参数)进行后续插入

我得到了非法的字符串偏移量错误和未定义的变量,所以我将其转储到如下所示的数组中

我如何正确地修改它以获得“PR”=“ABCD”等等

public  function ref()
{

    $sql = "select cast(co as DECIMAL) as co, cast(sl as DECIMAL)as sl, cast(pr as character(10)) as pr, cast(qt as decimal) as qt FROM tailbone";
    $results = odbc_exec($this->DB2Conn, $sql);

    $log='';
    if ($results) {
        while($row = odbc_fetch_array($results))
        {
                var_dump($row);

                $res = $this->add_quota($results['sl'], $results['pr'], $results['qt'], $results['co']);


        }
    }
}
阵列转储:

array(4)
 ["CO"]=>
 string(1) "1"
 ["SL"]=>
 string(1) "1"
 ["PR"]=>
 string(4) "ABCD"
 ["QT"]=>
  NULL
}
如果你
var\u dump($results)
你会得到类似的结果

resource(5) of type (odbc result)
这意味着
odbc\u exec
返回一个资源,不能将其用作数组。但既然你越来越

非法字符串偏移量

这意味着您正试图访问类似于关联数组的字符串。但是,因为我们现在知道,
$results
是一种资源类型,所以您看到的错误消息很有可能发生在
add\u quota
方法中

所以在这个方法中,你可能会发现类似的东西

function add_quota(...$args) {
    $args[0]['string']; // this is wrong, strings have no string keys
}
所以你应该做的是

public  function ref()
{

    $sql = "select cast(co as DECIMAL) as co, cast(sl as DECIMAL)as sl, cast(pr as character(10)) as pr, cast(qt as decimal) as qt FROM tailbone";
    $results = odbc_exec($this->DB2Conn, $sql);

    $log='';
    if ($results) {
        while($row = odbc_fetch_array($results))
        {
            $res = $this->add_quota($row['sl'], $row['pr'], $row['qt'], $row['co']);
        }
    }
}

$row
这是一个数组,包含由
odbc\u fetch\u array
函数返回的结果。

var\u dump
$row
但是使用了
$results
所以我应该使用该行吗?但它是否仍然应该是$row['SL']等?是的。嗯,我不确定您在
add_quota
中使用它们的目的是什么,但是使用
$result
对象肯定不是方法(否则for循环会有什么作用?)。我还猜“CO”是“COMPN”的缩写,等等?这与您之前的问题非常相似-为什么会有差异?