C MySQL登錄界面是一種基于C語言和MySQL數(shù)據(jù)庫的程序,用于實(shí)現(xiàn)用戶登錄管理。用戶可以通過該界面輸入自己的賬號(hào)和密碼,用于驗(yàn)證身份并訪問相應(yīng)權(quán)限。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <mysql/mysql.h> #define MAX_QUERY_LEN 1024 #define MAX_BUFFER_LEN 512 MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char query[MAX_QUERY_LEN]; int main() { char user[20]; char password[20]; char buffer[MAX_BUFFER_LEN]; //connect to mysql database conn = mysql_init(NULL); if (mysql_real_connect(conn, "localhost", "root", "password", "login", 0, NULL, 0) == NULL) { printf("Could not connect to MySQL database\n"); exit(1); } printf("Enter username: "); fgets(user, 20, stdin); strtok(user, "\n"); printf("Enter password: "); fgets(buffer, MAX_BUFFER_LEN, stdin); strtok(buffer, "\n"); sprintf(password, "SHA1('%s')", buffer); sprintf(query, "SELECT * FROM users WHERE username='%s' AND password=%s", user, password); mysql_query(conn, query); res = mysql_store_result(conn); if ((row = mysql_fetch_row(res)) != NULL) { printf("Login Successful\n"); } else { printf("Incorrect username or password\n"); } mysql_free_result(res); mysql_close(conn); return 0; }
在代碼中,首先通過mysql_init函數(shù)初始化MYSQL對象,然后使用mysql_real_connect函數(shù)連接本地MySQL數(shù)據(jù)庫。如果連接失敗,則會(huì)退出程序。接下來,使用fgets函數(shù)獲取用戶輸入的用戶名和密碼,并將其存儲(chǔ)在字符數(shù)組中。然后,使用sprintf函數(shù)將密碼轉(zhuǎn)換為SHA1加密后的字符串,并構(gòu)造一個(gè)MySQL查詢語句,使用mysql_query函數(shù)執(zhí)行該查詢語句。
最后,使用mysql_store_result函數(shù)保存查詢結(jié)果,并使用mysql_fetch_row函數(shù)獲取查詢結(jié)果的第一行數(shù)據(jù)。如果該行數(shù)據(jù)不為空,則表示用戶名和密碼正確,并顯示“Login Successful”消息。否則,顯示“Incorrect username or password”消息。