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行是指-return$description;
我想消除csv文件上的通知错误。
您只在特定条件下分配$description
,而您总是返回它。您应该在函数的开头用默认值(如NULL
、FALSE
(来分配它,在这种情况下可能是一个空字符串。
function get_description($table, $id){
global $conn;
$description = "";
...
您有时只定义变量:
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'];
}
只需检查您的代码,在这种情况下,错误消息非常直接——"Undefined variable:description"。这意味着您正在返回未定义的变量。如果(mysqli_num_rows($result(<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;
}
问题在于返回$description,因为它不是在所有情况下都定义的。
使用以下代码
if( isset($description))
{
return $description;
}