检索php会话值以后用作变量?

时间:2013-11-05 20:53:06

标签: php mysql variables session

我在这里有些东西可能很容易,但我在过去的30分钟里一直在搜索Google而没有成功,所以我希望有人可以帮助我做我正在做的事情错。

我在服务器上的会话中有一些值存储,我试图在每个用户的基础上检索它们,然后在进一步的查询中使用。但是出于某种原因,它的表现就好像价值是空的,所以我不知道我做错了什么?

$session_country = $_SESSION['my_country_code'];
$user_country = $db->get_sql_field("SELECT id FROM db_countries WHERE country_iso_code='".$session_country."'","country");
echo "your country is ";
echo $user_country;

我非常感谢我做错的任何提示:(

当我这样做时:

<? print_r($_SESSION['my_country_code']); ?>

它显示没问题!

// EDIT

以下是get_sql_field的代码:

function get_sql_field ($query, $field, $null_message = NULL)
    {
            (string) $field_value = NULL;

            $query_result = $this->query($query);

            if ($this->num_rows($query_result))
            {
                    $field_value = $this->sql_result($query_result, 0, $field);
            }
            else
            {
                    $field_value = $null_message;
            }

            return $field_value;
    }

2 个答案:

答案 0 :(得分:1)

在我看来,您实际上并未在查询中选择“国家/地区”字段(只是“id”),但您正在尝试访问“国家/地区”字段。要么选择“country”字段,要么将get_sql_field()调用的第二个参数更改为“id”,如果那是你实际想要的那个。

答案 1 :(得分:0)

试试这个:

$session_country = $_SESSION['my_country_code'];
$qry = "SELECT country FROM db_countries WHERE  country_iso_code='".$session_country."'";
$user_country = $db->get_sql_field($qry,"country");
echo "your country is ".$user_country;