PHP注意:未定义的索引

时间:2014-06-11 23:45:21

标签: php pdo

我得到" PHP注意:未定义的索引:公司"当我运行一个脚本时,这是一个坏的部分,我该如何修复呢?

while ($row = $consulta->fetch(PDO::FETCH_ASSOC)) {
$numer = $row['fonefull']; 

$sql = "SELECT company FROM numeros.portados  WHERE number = '$numer' LIMIT 1";
$result = $conn->query($sql);
echo $sql;
$operadoraResult = $consulta->fetch(PDO::FETCH_ASSOC);

if(is_array($operadoraResult))
    $resultcompany = $operadoraResult['company'];

由于

3 个答案:

答案 0 :(得分:1)

如果没有给定号码的公司,$ operadoraResult可以是一个空数组。 所以不会有指数'公司'。

尝试

if(!empty($operadoraResult))

答案 1 :(得分:0)

通知有点像警告说“嘿,这不会导致一个会自行破坏任何问题的问题,但你可能会对一个不正确的变量做出假设”

就像你可以假设某个值实际存在于该索引中一样,但是如果索引不存在,那么你实际上已经返回NULL。

您可以通过更改php的错误报告级别来更改是否显示通知。您可以通过编辑php.ini文件中的display_errors值来执行此操作,也可以使用error_reporting函数在运行时更改。

在这个具体案例中,它让你知道在这一行:

$resultcompany = $operadoraResult['company'];

您正试图访问索引'company'的数组$ operadoraResult中的元素,但'company'中没有索引。

答案 2 :(得分:0)

数组$ operadoraResult没有关键公司的元素。

如果更改会发生什么:

$result = $conn->query($sql);
echo $sql;
$operadoraResult = $consulta->fetch(PDO::FETCH_ASSOC);

if(is_array($operadoraResult))
    $resultcompany = $operadoraResult['company'];

进入这个:

foreach ($conn->query($sql) as $operadoraResult)
{
    if(is_array($operadoraResult))
        $resultcompany = $operadoraResult['company'];
}