我有一点问题,我不明白。
我有这段代码:
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)
如果有人知道为什么会出现这个问题?
提前致谢!
答案 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进行检查