我试图从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,无论这意味着什么??
答案 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());}