【问题标题】:How do I get mysql user_id from php session?如何从 php 会话中获取 mysql user_id?
【发布时间】:2019-03-30 11:00:09
【问题描述】:

在我的代码中,我使用 $user_id = $_SESSION["USER_ID"];获取有效的用户 ID。如果我在 PHP 中使用 echo 函数,它会显示正确的 id,但是当我尝试在查询中使用它时,它说它是未定义的。

我正在使用 XAMPP: PHP 7.1.27、7.2.16、7.3.3 阿帕奇 2.4.38 MariaDB 10.1.38 Perl 5.16.3 OpenSSL 1.0.2r(仅限 UNIX) phpMyAdmin 4.8.5

$user_id = $_SESSION["USER_ID"];

// Funkcija prebere oglase iz baze in vrne polje objektov

function get_oglasi(){
    global $conn;
    $query = "SELECT * FROM ads WHERE user_id= echo '$user_id'; ";
    $res = $conn->query($query);
    $oglasi = array();
    while($oglas = $res->fetch_object()){
        array_push($oglasi, $oglas);
    }
    return $oglasi;
}

我期望 $user_id = 17 的输出,但我收到未定义的错误。但如果我尝试<p>Opis: <?php echo $user_id;?></p>,我会得到正确的号码。

【问题讨论】:

标签: php mysql


【解决方案1】:

在 php 中,如果没有全局声明或发送到函数参数,您将无法读取变量。 请像下面的代码一样设置这个会话 user_id

 $user_id = $_SESSION["USER_ID"];

 function get_oglasi(){

 $user_id=$GLOBALS['user_id'];

 global $conn;
 $query = "SELECT * FROM ads WHERE user_id='$user_id'; ";
 $res = $conn->query($query);
 $oglasi = array();
 while($oglas = $res->fetch_object()){
    array_push($oglasi, $oglas);
 }
return $oglasi;
}

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    您需要将 $user_id 设为全局全局 $user_id;因为你在函数内使用,它是在函数外定义的。

    【讨论】:

      【解决方案3】:

      或者将参数传递给函数,然后您将获得函数内部的id 函数 get_oglasi($id)

      【讨论】:

        猜你喜欢
        • 2012-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-09
        • 2017-12-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多