返回功能 - 未定义的通知错误 - 下载csv文件

时间:2016-08-06 09:36:27

标签: php sql csv

function get_description($table, $id){
    global $conn;

    if ($id!='') {
        $sql = "SELECT * FROM ".$table." WHERE id=".$id;
    $result = mysqli_query($conn, $sql);

    if (!$result) {
        die("Connection failed: " . mysqli_error($conn));
    }

    if (mysqli_num_rows($result) < 1) {

    }else{
        $rows = mysqli_fetch_assoc($result);
        $description = $rows['description'];

    }

    return $description;
}else{
    return "";
}
}

我在functions.php中有这个功能。我正在尝试下载一个csv文件,它确实下载了csv文件,但是在csv文件的标题上发出了通知

注意:

  

未定义的变量:描述中   第73行 /var/www/html/include/functions.php

第73行指的是 - 返回$描述;

我想摆脱csv文件上的通知错误。

4 个答案:

答案 0 :(得分:1)

您只在特定条件下指定$description,而您始终会将其返回。您应该在函数开头使用NULLFALSE等默认值进行分配,或者在这种情况下可能是空字符串。

function get_description($table, $id){
    global $conn;
    $description = "";
    ...

答案 1 :(得分:1)

您只有有时定义变量:

if (mysqli_num_rows($result) < 1) {

}else{
    $rows = mysqli_fetch_assoc($result);
    $description = $rows['description'];
}

因此,如果执行if块(而不是else块),则永远不会定义变量。首先在条件优先之外定义它,因此它总是至少有一些值:

$description = "";
if (mysqli_num_rows($result) < 1) {

}else{
    $rows = mysqli_fetch_assoc($result);
    $description = $rows['description'];

}

答案 2 :(得分:0)

只需检查您的代码,在这种情况下错误信息非常直接 - “未定义的变量:说明”。这意味着您正在返回未定义的变量。如果(mysqli_num_rows($ result)&lt; 1)语句部分执行为正条件,则不定义$ description变量。将代码更改为:

function get_description($table, $id){
    global $conn;
    $description = "";

    if ($id!='') {
        $sql = "SELECT * FROM ".$table." WHERE id=".$id;
        $result = mysqli_query($conn, $sql);

        if (!$result) {
            die("Connection failed: " . mysqli_error($conn));
        }

        if (mysqli_num_rows($result) >= 1) {
           $rows = mysqli_fetch_assoc($result);
           $description = $rows['description'];
        }
    } 
    return $description;
}

答案 3 :(得分:0)

问题在于返回$ description,因为它并未在所有情况下定义。

使用以下代码

if( isset($description))
{
   return $description;
}