我正在浏览我的网站,并试图使其更具前瞻性和更清洁,因此将很多东西转换为常用功能。
我有一个特殊的函数来获取用户会话(会话名称是用户名),它在数据库上运行一个查询,该查询获取该用户的所有其他数据。
我希望userID
在某些部分使用,但我收到错误“注意:未定义的变量”
这是一个例子:
function getUserData_FromSession() {
if (isset($_SESSION['user'])) {
$username = "root";
$password = "root";
$host = "localhost";
$dbname = "06vids";
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
try
{
$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
}
catch(PDOException $ex)
{
die("Failed to connect to the database: " . $ex->getMessage());
}
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$stmt = $db->prepare('SELECT * FROM users WHERE username = "' . $_SESSION['user']. '"');
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
while($row = $stmt->fetch()){
$userid = $row['id'];
$usernameuser = $row['username'];
}
}
}
该函数位于页面中包含的函数文件中,在该页面上我这样做:
getUserData_FromSession();
if ($userid == $userbuildid) {
$editenabled = 'edity';
} else if ($userid !== $userbuildid) {
$editenabled = 'editx';
}
这给出了 $userid 未声明的错误。如果我实际上在同一页面上有查询,那么它可以正常工作,但我不希望到处都弹出大量查询。