如何解析未定义的索引:在php中显示数据库检索值时请注意


How to resolve Undefined index: Notice when displaying database retrieved value in php

我收到一个未定义的索引通知,但不知道如何修复。

以下是产生错误的代码:

<?php
include 'dbconfig.php';
$id;
if(isset($_POST['Tid']))
{
  $id=$_POST['To_ID'];
  echo "selected value:".$id;
  $query="select 'ID','Name' from  where ID='$id'";
  $result=sqlsrv_query($conn,$query);
  $a=sqlsrv_num_rows($result);
  echo $a;
  if(!$result)
  {
    echo "Query execution failed"; 
  }   
  else {
    while($row = sqlsrv_fetch_array($result))
    {
       print_r($row['ID'].$row['Name']);
    }
  } 
} 
else {
  echo "Post variable not set";
}

我在这里的线路上收到错误-

print_r($row['ID'].$row['Name']);

此外,我还验证了数据库中的列ID和名称,当我分别尝试时,选择查询也执行得很好。

即使文件名ID和名称存在,我也会得到未定义的索引ID和名称错误。

请帮助我解决此错误。

提前谢谢。

您使用了错误类型的引号,并且缺少表名:

$query="select 'ID','Name' from  where ID='$id'";

应为:

$query="select ID,Name from table_name where ID='$id'";

或者,如果列名需要加引号,则需要在sqlserver:中使用块引号

$query="select [ID],[Name] from [table_name] where [ID]='$id'";

还要注意,您有一个sql注入问题。理想情况下,您应该使用一个准备好的语句,但如果ID的值是一个整数,您也可以这样做:

$id = (int) $_POST['To_ID'];
$query = "select ID,Name from table_name where ID='$id'";

试试这个:

$query="select ID,Name from where ID='$id'";
$result=sqlsrv_query($conn,$query);

$a=sqlsrv_num_rows($result);
echo $a;
if(!$result)
{
echo "Query execution failed"; 
}    else {
for($i = 0; $i < $a; $i++)
{
print_r($row[$i]['ID'].$row[$i]['Name'].'<br/>');
}
} 
} else {
echo "Post variable not set";
}