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文件上的通知错误。
答案 0 :(得分:1)
您只在特定条件下指定$description
,而您始终会将其返回。您应该在函数开头使用NULL
,FALSE
等默认值进行分配,或者在这种情况下可能是空字符串。
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;
}