MySQL是一款常用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),可以存儲(chǔ)、操作、查詢數(shù)據(jù)。在實(shí)際使用中,有時(shí)候需要限制用戶只能查看和操作自己的數(shù)據(jù),而不能查看和操作其他用戶的數(shù)據(jù)。本文將介紹如何在MySQL中只顯示登錄用戶信息。
首先,我們需要?jiǎng)?chuàng)建一個(gè)用戶表,并在表中添加用戶名和密碼等字段:
CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL );
接著,我們需要在MySQL中創(chuàng)建一個(gè)用戶,并為該用戶授權(quán)只能訪問自己的數(shù)據(jù):
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password'; GRANT SELECT,INSERT,UPDATE,DELETE ON test.users TO 'user1'@'localhost'; GRANT SHOW VIEW ON test.* TO 'user1'@'localhost'; FLUSH PRIVILEGES;
這里我們創(chuàng)建了一個(gè)名為"user1"的用戶,并授予該用戶可以對(duì)"users"表進(jìn)行SELECT、INSERT、UPDATE和DELETE操作的權(quán)限,同時(shí)授予了SHOW VIEW權(quán)限。需要注意的是,"localhost"表示該用戶只能在本地訪問MySQL。
接下來(lái),我們需要在代碼中實(shí)現(xiàn)只顯示當(dāng)前登錄用戶的數(shù)據(jù)。假設(shè)當(dāng)前用戶已經(jīng)登錄,我們可以通過(guò)以下代碼獲取當(dāng)前用戶的用戶名:
if(isset($_SESSION['username'])){ $username = $_SESSION['username']; } else { // 用戶未登錄,進(jìn)行相應(yīng)處理 }
獲取當(dāng)前用戶的用戶名后,我們可以用以下代碼查詢當(dāng)前用戶的數(shù)據(jù):
SELECT * FROM users WHERE username = '$username';
在查詢數(shù)據(jù)時(shí),我們通過(guò)$username變量將當(dāng)前用戶的用戶名傳遞給WHERE子句,從而只查詢當(dāng)前用戶的數(shù)據(jù)。
最后,我們需要在代碼中將查詢結(jié)果顯示出來(lái):
while($row = mysqli_fetch_assoc($result)){ echo $row['id'] . ' ' . $row['username'] . ' ' . $row['password'] . '
'; }
在以上代碼中,我們使用mysqli_fetch_assoc()函數(shù)從查詢結(jié)果中獲取每一行數(shù)據(jù),然后將數(shù)據(jù)輸出到頁(yè)面中。
綜上所述,我們可以通過(guò)創(chuàng)建MySQL用戶并限制其訪問權(quán)限,以及在代碼中查詢并顯示當(dāng)前用戶的數(shù)據(jù),實(shí)現(xiàn)只顯示登錄用戶信息的功能。