所以我在从我的数据库中检索用户数据时遇到问题,它连接到数据库很好,并且登录正常,它只显示用户问题,如“全名”和“电子邮件”,这些都给我带来了问题。我到处搜索,但我在网上看到的解决方案似乎都没有用,所以我在这里问自己的问题,
这是我的配置文件
<?php
$con =
mysqli_connect("server","db_Admin","db_pass123","db_name");
if(!$con):
die('Connect Error (' . mysqli_connect_errno() . ') '.
mysqli_connect_error());
endif;
?>
这是我的登录脚本
<?php
require 'config.php';
require 'core.php';
if (isset($_POST['email']) && isset($_POST['password'])) {
$email = $_POST['email'];
$password = $_POST['password'];
$password_hash = md5($password);
if (!empty($email) && !empty($password)) {
$query = "SELECT `id` FROM `users` WHERE `email` = '$email' AND
`password` = '$password_hash'";
if ($query_run = mysqli_query($con, $query)) {
$query_num_rows = mysqli_num_rows($query_run);
if ($query_num_rows == 0) {
echo 'Invalid email/password combination.';
} else if ($query_num_rows == 1) {
echo $user_id = mysqli_fetch_row($query_run);
$_SESSION['user_id'] = $user_id;
header('Location: account.php');
}
}
} else {
echo 'You must supply an email and a password.';
}
}
像魅力一样工作,然后这里是罪魁祸首,'core.php'脚本,它适用于我的localhost,但后来我使用mySQL而不是mySQLi
require 'config.php';
ob_start();
session_start();
function loggedin() {
if (isset($_SESSION['user_id'])&&!empty($_SESSION['user_id'])) {
return true;
} else {
return false;
}
}
function getuserfield($field) {
$query = "SELECT `$field` FROM `users` WHERE `id` =
'".$_SESSION['user_id']."'";
if ($query_run = mysqli_query($con, $query)) {
if ($query_result = mysqli_result($query_run, 0, $field)) {
return $query_result;
}
}
}
然后这是我尝试使用getuserfield()函数获取数据时得到的错误
$fullname = getuserfield('fullname');
echo 'fullname';
我收到以下错误
警告:mysqli_query()期望参数1为mysqli,给定字符串 在/home/mysite/public_html/core/core.php第18行
我确信我有一些非常明显的缺失,但我几乎是初学者,所以我真的很感激任何帮助
编辑:对于那些由于某种原因降低了这个问题的可见性的人,我认为我没有做足够的研究,而是将其投票给一个负面的数字,以下是一些解决方案的链接我尝试过的那些都没用;
此时我甚至不想在代码中得到答案,有什么我想念的吗?是或否,我应该添加全局连接变量吗?如果我没有在其他地方检查过,我不会在这里。如果它看似重复,那么答案就不在另一个问题中了。
答案 0 :(得分:-1)
将您的功能更新为此
$loggedUserId = $_SESSION['user_id'];
function getUserField($field, $loggedUserId)
{
#Database Connection
global $connection;
$query = mysqli_query($connection, "SELECT `$field` FROM `users` WHERE `id`='$loggedUserId'");
$user = mysqli_fetch_array($query);
return $user[$field];
}
显示结果将是这样的
getUserField('fullname', $loggedUserId)