Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP变量未定义,但我在函数中设置了它们_Php_Mysql_Database_Echo - Fatal编程技术网

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

所以,我一直在编写一些PHP,我正在从数据库中获取一些数据以进行输出。我在使用函数,就像普通人一样,但是出于某种原因,我的变量,在函数中被拒绝的,显然是未声明的

这是我的密码:

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您可以从函数返回数组,然后在显示之前内爆返回值。如果你愿意,我可以编辑答案来显示。