PHP变量未定义,但我在函数中设置了它们
所以,我一直在编写一些PHP,我正在从数据库中获取一些数据以进行输出。我在使用函数,就像普通人一样,但是出于某种原因,我的变量,在函数中被拒绝的,显然是未声明的 这是我的密码:PHP变量未定义,但我在函数中设置了它们,php,mysql,database,echo,Php,Mysql,Database,Echo,所以,我一直在编写一些PHP,我正在从数据库中获取一些数据以进行输出。我在使用函数,就像普通人一样,但是出于某种原因,我的变量,在函数中被拒绝的,显然是未声明的 这是我的密码: function fetchUserData($localUser_id) { include_once("../../../conConfig/connectToDatabase.php"); $dataQuery = mysqli_query($dbConnect, "SELECT users.e
function fetchUserData($localUser_id) {
include_once("../../../conConfig/connectToDatabase.php");
$dataQuery = mysqli_query($dbConnect, "SELECT users.emailAddress, userInfo.fullName, userInfo.initials, userInfo.maxWorkspaces FROM users INNER JOIN userInfo ON userInfo.ID = users.ID WHERE users.ID = ".$localUser_id."");
$queryResult = mysqli_fetch_array($dataQuery, MYSQLI_ASSOC);
$db_dash_userName = $queryResult["fullName"];
$db_dash_userEmail = $queryResult["emailAddress"];
$db_dash_userIcon = "initials";
$db_dash_userMaxW = $queryResult["maxWorkspaces"];
$db_dash_userInit = $queryResult["initials"];
echo $db_dash_userName.$db_dash_userEmail.$db_dash_userIcon.$db_dash_userMaxW.$db_dash_userInit."<br><br><br>";
}
//$localUser_id = $_SESSION["user_id"];
$localUser_id = 1;
fetchUserData($localUser_id);
echo $db_dash_userName.$db_dash_userEmail.$db_dash_userIcon.$db_dash_userMaxW.$db_dash_userInit;
函数fetchUserData($localUser\u id){
包括_once(“../../../conConfig/connectToDatabase.php”);
$dataQuery=mysqli\u query($dbConnect,“从用户内部选择users.emailAddress、userInfo.fullName、userInfo.initials、userInfo.maxWorkspaces在userInfo.ID=users.ID上加入userInfo,其中users.ID=“.localUser\u ID.”;
$queryResult=mysqli\u fetch\u数组($dataQuery,mysqli\u ASSOC);
$db_dash_userName=$queryResult[“全名”];
$db_dash_userEmail=$queryResult[“emailAddress”];
$db\u dash\u userIcon=“缩写”;
$db_dash_userMaxW=$queryResult[“MaxWorkspace”];
$db_dash_userInit=$queryResult[“缩写”];
echo$db_dash_userName.$db_dash_userEmail.$db_dash_userIcon.$db_dash_userMaxW.$db_dash_userInit.“
”;
}
//$localUser\u id=$\u会话[“user\u id”];
$localUser_id=1;
fetchUserData($localUser\u id);
echo$db_dash_userName.$db_dash_userEmail.$db_dash_userIcon.$db_dash_userMaxW.$db_dash_userInit;
它可能有什么问题?它返回一个值,由函数内部的echo输出,但它们不是由最终的“echo”输出的
是的,我尝试了“return variable.variable…”,但这仍然不能解决问题
提前感谢。您需要从函数返回值。回显不会返回值。您还需要将返回的值分配到一个变量中,并使用它来显示输出
function fetchUserData($localUser_id) {
include_once("../../../conConfig/connectToDatabase.php");
$dataQuery = mysqli_query($dbConnect, "SELECT users.emailAddress, userInfo.fullName, userInfo.initials, userInfo.maxWorkspaces FROM users INNER JOIN userInfo ON userInfo.ID = users.ID WHERE users.ID = ".$localUser_id."");
$queryResult = mysqli_fetch_array($dataQuery, MYSQLI_ASSOC);
$db_dash_userName = $queryResult["fullName"];
$db_dash_userEmail = $queryResult["emailAddress"];
$db_dash_userIcon = "initials";
$db_dash_userMaxW = $queryResult["maxWorkspaces"];
$db_dash_userInit = $queryResult["initials"];
return $db_dash_userName.$db_dash_userEmail.$db_dash_userIcon.$db_dash_userMaxW.$db_dash_userInit."<br><br><br>";
}
//$localUser_id = $_SESSION["user_id"];
$localUser_id = 1;
$output = fetchUserData($localUser_id);
echo $output;
函数fetchUserData($localUser\u id){
包括_once(“../../../conConfig/connectToDatabase.php”);
$dataQuery=mysqli\u query($dbConnect,“从用户内部选择users.emailAddress、userInfo.fullName、userInfo.initials、userInfo.maxWorkspaces在userInfo.ID=users.ID上加入userInfo,其中users.ID=“.localUser\u ID.”;
$queryResult=mysqli\u fetch\u数组($dataQuery,mysqli\u ASSOC);
$db_dash_userName=$queryResult[“全名”];
$db_dash_userEmail=$queryResult[“emailAddress”];
$db\u dash\u userIcon=“缩写”;
$db_dash_userMaxW=$queryResult[“MaxWorkspace”];
$db_dash_userInit=$queryResult[“缩写”];
返回$db_dash_userName.$db_dash_userEmail.$db_dash_userIcon.$db_dash_userMaxW.$db_dash_userInit.“
”;
}
//$localUser\u id=$\u会话[“user\u id”];
$localUser_id=1;
$output=fetchUserData($localUser\u id);
echo$输出;
我认为您需要从函数中返回值,而不是回显它们。您需要了解变量作用域。我尝试过“返回变量…”,但问题仍然存在……在您的情况下,您最好使用函数在数组中插入值,然后返回该数组。然后,在调用函数后,您应该能够从返回的数组中访问这些变量。警告:当使用mysqli
时,您应该使用参数化查询,并将用户数据添加到查询中。不要使用字符串插值来完成此操作,因为这样会创建严重的错误。切勿将$\u POST
数据直接放入查询。感谢您的帮助。我建议使用内爆()函数来分离新值:)@RyanCastle您是说要在显示之前使用内爆函数吗?@RyanCastle您可以从函数返回数组,然后在显示之前内爆返回值。如果你愿意,我可以编辑答案来显示。