0

我正在尝试从 mysql 中的单个表访问用户数据,以便将其显示在屏幕上。

例如。“以‘用户名’登录。”

我已按照本教程中的说明进行操作。

这是我的功能:

//create function to fetch user data (eg. username, firstname, address, etc.)

function fetchUserData($field) {

$user_id = $_SESSION['user_id'];

$query = "SELECT '$field' FROM users WHERE id = '$user_id'";
if ($query_run = mysql_query($query)) {
    if ($query_result = mysql_result($query_run, 0, $field)) {
        return $query_result;
    }
  }
}

我这样调用函数:

$firstname = fetchUserData('firstname');
$surname = fetchUserData('surname');

echo 'Logged in as '.$firstname.' '.$surname.'.';

工作正常,$_SESSION['user_id']我已经测试过了。但我无法收集与该用户 ID 相关的数据(用户名、地址等)。

此外,$query_run返回资源 ID #7,这意味着什么?

4

2 回答 2

0
 if ($query_result = mysql_result($query_run, 0, $field)) {
        return $query_result;
    }

应该

 if ($query_result = mysql_result($query_run, 0)) {
        return $query_result;
    }

或者你可以使用

 if ($query_result = mysql_result($query_run, 0, "'".$field."'")) {
        return $query_result;
    }

在 $field 中添加单引号

于 2013-07-06T06:01:26.310 回答
0

改变你的单引号$field

$query = "SELECT '$field' FROM users WHERE id = '$user_id'";

反引号

$query = "SELECT `$field` FROM users WHERE id = '$user_id'";
                 ^      ^

此外,您没有mysql_connect()显示,因此很可能您有变量范围问题 - http://php.net/manual/en/language.variables.scope.php - 因此您的查询失败,因为没有连接。您可以使用or die(mysql_error())-

if ($query_run = mysql_query($query) or die(mysql_error()) {

或者

if ($query_run = mysql_query($query)) {...}
else{die(mysql_error());}
于 2013-07-06T06:01:36.623 回答