新聞中心
C語言實(shí)現(xiàn)鏈接數(shù)據(jù)庫并進(jìn)行密碼登錄

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、利州網(wǎng)站維護(hù)、網(wǎng)站推廣。
隨著互聯(lián)網(wǎng)應(yīng)用的普遍化,數(shù)據(jù)庫的使用愈加廣泛。數(shù)據(jù)庫的應(yīng)用數(shù)量大幅增加,而且也越來越多地向著簡單、靈活、高效等方向發(fā)展。作為一種最常見的數(shù)據(jù)庫,MySQL不僅使用基礎(chǔ)簡單,而且性能優(yōu)異,因此使用MySQL進(jìn)行數(shù)據(jù)庫的開發(fā)成為了越來越多人得選擇。本文將介紹如何使用C語言實(shí)現(xiàn)鏈接MySQL數(shù)據(jù)庫,并進(jìn)行密碼登錄的功能。
一、MySQL數(shù)據(jù)庫
MySQL數(shù)據(jù)庫是目前數(shù)據(jù)庫技術(shù)中更受歡迎的一種數(shù)據(jù)庫產(chǎn)品。MySQL是一種開源軟件,它是由瑞典MySQL AB公司開發(fā)的,現(xiàn)在這個公司由Oracle公司所收購。MySQL發(fā)行自由軟件授權(quán)條款第二版(GPLv2)下的開源協(xié)議,人們可以任意的使用、復(fù)制、分發(fā)和修改MySQL的代碼。
MySQL的優(yōu)點(diǎn):
1. MySQL的性能出色,是一個真正的高速處理數(shù)據(jù)庫;
2. 可用性很好,它運(yùn)行的時候,穩(wěn)定性非常高,一般很少出現(xiàn)問題;
3. 安裝使用很容易,不用花費(fèi)太多的時間和精力進(jìn)行安裝和部署;
4. 占用資源比較低,能夠很好地使用計算機(jī)的內(nèi)存和磁盤,不會對機(jī)器造成太多的壓力;
5. 支持多平臺,可以在Linux、Windows、Mac OS X等各種平臺上運(yùn)行;
6. 支持多種編程語言接口,比如C、C++、Java、Perl、Python等。
二、C語言實(shí)現(xiàn)鏈接MySQL
MySQL的C語言庫稱為libmysqlclient,應(yīng)該是更受歡迎的MySQL API。它是一個用C++編寫的底層API,支持大多數(shù)的MySQL服務(wù)器操作,比如建立連接、執(zhí)行查詢操作、寫入、更新和刪除數(shù)據(jù)以及控制事務(wù)等。
在使用C語言進(jìn)行MySQL鏈接之前,需要先安裝MySQL C Connector
sudo apt-get install libmysqlclient-dev
然后,我們使用之前安裝的MySQL C Connector的頭文件。在我們的程序中,包括my_global.h和mysql.h。my_global.h包括一些常見的用于MySQL的類型和靜態(tài)定義,mysql.h包括MySQL API的大多數(shù)方法和功能聲明。
Now 首先需要進(jìn)行頭文件的包含和定義mysql句柄:
#include
MYSQL *conn;
MYSQL結(jié)構(gòu)體是libmysqlclient的主要結(jié)構(gòu)。我們使用它來建立MySQL連接,并執(zhí)行相關(guān)操作。
然后我們需要使用mysql_real_connect()方法建立MySQL連接:
conn = mysql_init(NULL);
mysql_real_connect(conn, “l(fā)ocalhost”, “root”, “password”, “db_name”, 0, NULL, 0);
其中,localhost表示主機(jī)名,root表示用戶名,password表示密碼,db_name指定我們需要連接的數(shù)據(jù)庫名稱。其中,0表示端口號,NULL表示使用本地socket連接。此外,還可以將端口號和sock文件指定為參數(shù)。
初始化連接之后,我們就可以進(jìn)行一些操作,比如獲取一個表中的數(shù)據(jù):
MYSQL_RES *res;
MYSQL_ROW row;
if(mysql_query(conn, “SELECT * FROM table_name”)) {
fprintf(stderr, “%s\n”, mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
while((row = mysql_fetch_row(res))) {
printf(“%d %s %s\n”, atoi(row[0]), row[1], row[2]);
}
mysql_free_result(res);
這段代碼執(zhí)行了一個SELECT語句,從table_name表中獲取數(shù)據(jù)。其中,mysql_query()方法執(zhí)行查詢操作,并返回0表示操作成功。如果操作失敗了,就需要在stderr中打印錯誤信息,并退出程序。fetch_row()方法將每一行中的數(shù)據(jù)存儲在row數(shù)組中,我們可以根據(jù)行中不同數(shù)據(jù)的類型,從row數(shù)組中取出我們感興趣的數(shù)據(jù),并將其打印出來。
三、密碼登錄程序
以一個簡單的密碼登錄程序作為示例,程序首先要鏈接MySQL數(shù)據(jù)庫,獲取用戶輸入的賬號、密碼信息,并根據(jù)這些信息進(jìn)行判斷。如果輸入的賬號和密碼信息匹配,程序?qū)⒎祷爻晒Φ男畔?;否則,程序?qū)⒎祷厥〉男畔ⅰ?/p>
//主函數(shù)
int mn()
{
MYSQL connect;
MYSQL_RES* res_set;
MYSQL_ROW row;
connect=mysql_init(NULL);
//連接MySQL數(shù)據(jù)庫
if(!mysql_real_connect(&connect, “l(fā)ocalhost”,”root”,”password”, “user_info”,0,NULL,0))//user_info為數(shù)據(jù)庫名稱
{
printf(“open database error: %s\n”, mysql_error(&connect));
return -1;
}
//獲取用戶輸入的賬號和密碼
char name[20];
char password[20];
printf(“請輸入用戶名:”);
scanf(“%s”, name);
printf(“請輸入密碼:”);
scanf(“%s”, password);
//查詢與輸入相同的數(shù)據(jù)
char query[80];
sprintf(query, “SELECT * FROM user WHERE name=’%s’ and password=’%s'”, name, password);
mysql_query(&connect,query);
res_set = mysql_store_result(&connect);
//根據(jù)查詢結(jié)果判斷是否匹配
if(mysql_num_rows(res_set)==0)
printf(“登錄失敗:賬號或密碼錯誤”);
else
printf(“登錄成功”);
mysql_free_result(res_set);
mysql_close(&connect);
return 0;
}
以上代碼將查詢user_info數(shù)據(jù)庫中的user表,獲取用戶輸入的賬號和密碼,查詢并判斷是否匹配。其中,mysql_init()函數(shù)用來初始化一個MYSQL結(jié)構(gòu)體,mysql_real_connect()函數(shù)用來連接MySQL數(shù)據(jù)庫。mysql_query()函數(shù)用來執(zhí)行一條MySQL查詢。mysql_store_result()函數(shù)獲取查詢結(jié)果并將其存儲在一個MYSQL_RES結(jié)構(gòu)體中。mysql_num_rows()用來獲取查詢結(jié)果中的記錄數(shù)。mysql_close()函數(shù)用來關(guān)閉已經(jīng)建立的MySQL連接。
相關(guān)問題拓展閱讀:
- mfc如何遠(yuǎn)程連接sql數(shù)據(jù)庫(mfc連接mysql數(shù)據(jù)庫)
- SQL中“Data Source=.;Initial Catalog=MyQQ;User ID=sa;Pwd=sa ”是什么意思?
- SQL中“Data Source=.;Initial Catalog=MyQQ;User ID=sa;Pwd=sa ”是什么意思?
mfc如何遠(yuǎn)程連接sql數(shù)據(jù)庫(mfc連接mysql數(shù)據(jù)庫)
1.首先,你的機(jī)器上要保證有sqlserver,并能正確進(jìn)入并創(chuàng)建數(shù)據(jù)庫,表等。2.建議把那個SA的密碼自己重新設(shè)定一下,設(shè)定方法:打開sqlserver2023SQLServerManagementStudio,進(jìn)去后在那個安全性–登錄名–右鍵點(diǎn)擊SA屬性,設(shè)置密碼,狀態(tài)里面改成,授予啟用。3.將ADO代碼庫引入到工程中,需要在stdafx.h或TEST.h(這個MFC項(xiàng)目的頭文件)中添加如下代碼,注意不同的操作系統(tǒng)在安裝時這個路徑可能不一樣,所以必須先在系統(tǒng)中找到msado15.dll文件的路徑:加入代碼:#import”C:ProgramFilesCommon.dll”no_namespacerename(“EOF”,”adoEOF”)?(通過以上代碼就可以將ADO代碼庫引入到當(dāng)前工程中)?4.在TEST工程中的TEST.h中加入如下代碼:(藍(lán)色為所加入的)classCSQL_TESTApp:publicCWinApp{public:?_m_pAppConn;?//連接對象指針
CStringm_;?//連接字符串的聲明
boolm_bConnected;//連接標(biāo)志public:
CSQL_TESTApp();//Overrides
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CSQL_TESTApp)public:virtualBOOL();
。};?5.在TEST工程的TEST.CPP文件中加入如下代碼:(藍(lán)色為所加入的)BOOLCSQL_TESTApp::(){();?HRESULThRes;try{hRes=m_pAppConn.(_T(“ADODB.Connection”));
m_pAppConn-
if(SUCCEEDED(hRes)){m_bConnected=TRUE;//連接成功設(shè)置標(biāo)志位}}catch(_com_errore){CString;
.(_T(“連接數(shù)據(jù)庫失敗%s”),e.());
();//顯示錯誤信息
returnFALSE;?}
SQL中“Data Source=.;Initial Catalog=MyQQ;User ID=sa;Pwd=sa ”是什么意思?
Data Source 數(shù)據(jù)源,簡單說就是你安裝數(shù)據(jù)庫那臺機(jī)器,.代表本機(jī)。扒喚如果在其它機(jī)器中等號后面填寫要連接的主機(jī)IP。念此謹(jǐn)
Initial Catalog是你要連接的數(shù)據(jù)庫的名字。仔基
User ID 連接數(shù)據(jù)庫用戶名。
Pwd 連接數(shù)據(jù)庫密碼。
這是連接數(shù)據(jù)庫的
字符串
,Data Source 是數(shù)據(jù)源,Initial Catalog是數(shù)據(jù)庫的名稱,User ID是搜襲型登錄數(shù)據(jù)的
用戶名
,Pwd是登錄數(shù)據(jù)庫的密碼。
“Data Source=.;Initial Catalog=MyQQ;User ID=sa;Pwd=sa”,這串代碼DataSource等號后面的那個點(diǎn)是代表你所使用的數(shù)據(jù)庫是本地數(shù)據(jù)庫,本地數(shù)據(jù)庫默認(rèn)的實(shí)例名就是.\SQLEXPRESS。
特別注意的是:正常用一個點(diǎn)就可以代表本地數(shù)據(jù)庫了,但是如果你在運(yùn)行的時候還是跳出錯誤的話,可以將一個點(diǎn)改成”.\SQLEXPRESS”,這樣就沒有問題了。
擴(kuò)展資料
數(shù)據(jù)庫的常見操作語句:
1、創(chuàng)建數(shù)據(jù)庫
Create 禪昌database Test
2、刪除數(shù)據(jù)庫
Drop database Test
3、備份數(shù)據(jù)庫
backup database Test to disk=’E:/Test.bak’
4、還原數(shù)據(jù)庫
restore database Test from disk=’E:/Test.bak’
參考資料:
百度百科-SQL數(shù)據(jù)庫連接世猜
這整個語句“Data Source=.;Initial Catalog=MyQQ;User ID=sa;Pwd=sa ”是數(shù)據(jù)庫連接字迅頌符串操作。
具體如下:
Data Source 是數(shù)據(jù)源;
Initial Catalog是數(shù)據(jù)庫的名稱;
User ID是登錄數(shù)據(jù)的用戶名;
Pwd是登錄數(shù)據(jù)庫的密碼。
擴(kuò)展資料:
SQL 的常見操螞閉作:
1、創(chuàng)建數(shù)據(jù)畝物鄭庫
CREATE DATABASE database-name
2、刪除數(shù)據(jù)庫
drop database dbname
3、備份sql server
— 創(chuàng)建 備份數(shù)據(jù)的 device
USE master
EXEC sp_addumpdevice ‘disk’, ‘testBack’, ‘c:\mssql7backup\MyNwind_1.dat’
— 開始 備份
BACKUP DATABASE pubs TO testBack
4、創(chuàng)建新表
create table tabname(col1 type1 ,col2 type2 ,..)
參考資料:
SqlConnection 百度百科
Data Source 是數(shù)據(jù)源;
Initial Catalog是數(shù)鏈源據(jù)庫蔽喚兆宏租的名稱;
User ID是登錄數(shù)據(jù)的用戶名;
Pwd是登錄數(shù)據(jù)庫的密碼。
SQL中“Data Source=.;Initial Catalog=MyQQ;User ID=sa;Pwd=sa ”是什么意思?
data
source是數(shù)據(jù)源,initial
catalog后加的是你所要連接的數(shù)據(jù)庫的名稱,user
id
和pwd則是你連接這個數(shù)據(jù)庫時所用的用戶名和密碼,這些在sql
server連接時都能找得到的。
這整個語句“Data
Source=.;Initial
Catalog=MyQQ;User
ID=sa;Pwd=sa
”是數(shù)據(jù)庫連接字符串操作。
具體如下:
Data
Source
是數(shù)據(jù)源;
Initial
Catalog是數(shù)據(jù)庫的名稱;
User
ID是登錄數(shù)據(jù)的用戶名;
Pwd是登錄數(shù)據(jù)庫的密碼。
擴(kuò)展資料:
SQL
的常見操作:
1、創(chuàng)建數(shù)據(jù)庫
CREATE
DATABASE
database-name
2、刪除數(shù)據(jù)庫
drop
database
dbname
3、備份sql
server
—
創(chuàng)建
備份數(shù)據(jù)的
device
USE
master
EXEC
sp_addumpdevice
‘disk’,
‘testBack’,
‘c:\mssql7backup\MyNwind_1.dat’
—
開始
備份
BACKUP
DATABASE
pubs
TO
testBack
4、創(chuàng)建新表
create
table
tabname(col1
type1
null>
key>,col2
type2
null>,..)
參考資料:SqlConnection
百度百科
Data
Source
數(shù)據(jù)源,簡單說就是你安裝數(shù)據(jù)庫那臺機(jī)器,.代表本機(jī)。如果在其它機(jī)器中等號后面填寫要連接的主機(jī)IP。
Initial
Catalog是你要連接的數(shù)據(jù)庫的名字。
User
ID
連接數(shù)據(jù)庫用戶名。
Pwd
連接數(shù)據(jù)庫密碼。
Data
Source
是數(shù)據(jù)源;
Initial
Catalog是數(shù)據(jù)庫的名稱;
User
ID是登錄數(shù)據(jù)的用戶名;
Pwd是登錄數(shù)據(jù)庫的密碼。
c 鏈接數(shù)據(jù)庫然后登錄密碼的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于c 鏈接數(shù)據(jù)庫然后登錄密碼,C語言實(shí)現(xiàn)鏈接數(shù)據(jù)庫并進(jìn)行密碼登錄。,mfc如何遠(yuǎn)程連接sql數(shù)據(jù)庫(mfc連接mysql數(shù)據(jù)庫),SQL中“Data Source=.;Initial Catalog=MyQQ;User ID=sa;Pwd=sa ”是什么意思?,SQL中“Data Source=.;Initial Catalog=MyQQ;User ID=sa;Pwd=sa ”是什么意思?的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動、聯(lián)通機(jī)房等。
當(dāng)前文章:C語言實(shí)現(xiàn)鏈接數(shù)據(jù)庫并進(jìn)行密碼登錄。(c鏈接數(shù)據(jù)庫然后登錄密碼)
網(wǎng)站網(wǎng)址:http://m.fisionsoft.com.cn/article/ccioedo.html


咨詢
建站咨詢
