注意:未定义的偏移量:0 - 我的数组包含值

时间:2017-09-06 12:38:42

标签: php arrays odbc

我有一点问题,我不明白。

我有这段代码:

public function formAlreadySent($demande){
        $data = odbc_exec($this->dbConnection,"SELECT COUNT(*) FROM [@JDC_QSTR] WHERE U_Demande = ".$demande);
        $nombre = odbc_fetch_array($data);
        print_r($nombre);
        if($nombre[0] > 0)
            return true;
        else
            return false;
    }

我的print_r的结果是:

  

数组([0] => 0)

但我收到了这个错误:

  

注意:第89行的C:\ wamp \ www \ enquetesatisfaction \ libs \ model \ QuestionsManager.class.php中未定义的偏移量为0

第89行是:

if($nombre[0] > 0)

如果有人知道为什么会出现这个问题?

提前致谢!

2 个答案:

答案 0 :(得分:4)

根据PHP文档,odbc_fetch_array获取结果行并将其作为关联数组返回,如果没有更多行,则返回false

作为关联数组,第一项(COUNT(*))的索引不应为[0]。说实话,我不知道为什么它显然是。

我建议这样做:首先将SQL中的计数别名,例如

SELECT COUNT(*) AS rowcount ...

然后在获取结果后引用该别名。

if($nombre['rowcount'] > 0) ...

答案 1 :(得分:1)

根据var_dump输出:

array (size=1) '0' => string '0' (length=1)

错误原因

  

注意:未定义的偏移量:

中的0

string,您正在integer

进行访问

可以使用密钥使用if进行伪装但我建议使用PHP函数array_key_exists进行检查