无法从mysql数据库中获取用户数据

时间:2013-07-06 05:54:23

标签: php mysql

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

例如。 "以'用户名'登录。"

我已按照此tutorial的说明进行操作。

这是我的功能:

//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,无论这意味着什么??

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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());}