综观通知,您可能需要采取在现场名称细看,因为所有它的意思是,没有servername
指数$row
,这表明存在表
尝试没有servername
场var_dump(array_keys($row));
循环内,并纠正你的错字,或只是检查你的tbl。
另外:mssql_fethc_array
获取的结果作为数字索引阵列和默认关联数组,因为你只assoc命令后阵的时候,我建议使用mssql_fetch_assoc
代替,或mssql_fetch_object
,如果对象不要吓你;)
从文档:
Returns an associative array that corresponds to the fetched row and moves the internal data pointer ahead. mssql_fetch_assoc() is equivalent to calling mssql_fetch_array() with MSSQL_ASSOC for the optional second parameter.
因此,要么:
while($row = mssql_fetch_assoc($result)){}
//or
while($row = mssql_fetch_array($result, MSSQL_ASSOC)){}
将导致$row
成为关联数组只有
您现在也有效,但我认为它没有意义(因为您没有使用它们,所以不需要数字索引)。
虽然看到,因为你只是建立一个表中的值:
while($row = mssql_fetch_array($result,MSSQL_NUM))
{
echo vprintf('<tr>'. str_repeat('<td>%s</td>', count($row)).'</tr>', $row);
}
做到了这一点,无论如何,但有在数组键没有错字的风险。
请注意:像我这里使用的单行游戏时要小心,在这种情况下,这个语句不会太长,而且仍然非常可读,但如果您使用这样的东西太多,同事会诅咒并建议您去写mindulck而不是
这将有助于如果您还贴出了$结果值 –
了'提取物()'函数是完全没有必要在这里。问题在于你的行不包含名为'servername'的字段。通过执行一个'print_r($ row)'来检查它包含的内容' – Spudley
'servername'是你的查询返回的字段吗?看起来它不是查询的一部分。 – hdvianna