vc C 操作mysql資料庫一些注意事項

2021-07-11 05:49:20 字數 2023 閱讀 1675

參考:

核心語句:

mysql_num_rows() 函式返回結果集中行的數目,用於select後使用;

mysql_affected_rows()用於insert、update、delete語句後使用;
為什麼使用這兩個函式原因:

mysql_query() 查詢並不會判斷資料是否存在 , 它只負責mysql語句是否執行成功

select mysql_query();

如果查詢的 id 在資料庫不存在,它一樣會返回資源型,但是裡面返回的值卻為空。

insert,update 或 delete mysql_query();

也一樣的道理 ,delete不存在的id,一樣語句執行成功。所以要用mysql_affected_rows判斷實際影響的行數,這樣才能真正判斷資料是否存在且改變!

//1:mysql_num_rows 與select語句使用

cstring strsql;

strsql.format("select * from t_user where name='%s' and password = '%s' and isuse = 1",userinfo.name,userinfo.password);

int ret = mysql_query(&mydbcon,strsql);

if(ret)

mysql_res *res = mysql_store_result(&mydbcon);

if (!res)

int numret = mysql_num_rows(res);

if (res)

mysql_free_result(res);

if (numret<=0)

return found_recode;

//2:mysql_affected_rows 與insert語句

cstring strsql;

"insert into t_user set %s",sql);

strsql.format("insert into t_user(name,password,priflag,isuse,remark) values ('%s','%s',%d,%d,'%s')"\

,userinfo.name,userinfo.password,userinfo.priflag,userinfo.isuse,userinfo.remark);

int ret = mysql_query(&mydbcon,strsql);

if (ret)

int aftret = mysql_affected_rows(&mydbcon);

if (aftret<=0)

return found_recode;

//3: mysql_affected_rows 與update語句

cstring strsql;

strsql.format("update t_user set password=\'%s\' where id=\'%d\'",userinfo.password,userinfo.id);

int ret = mysql_query(&mydbcon,strsql);

if (ret)

int aftret = mysql_affected_rows(&mydbcon);

if (aftret<=0)

return true;

//4:mysql_affected_rows 與delete語句

cstring strsql;

"insert into t_user set %s",sql);

strsql.format("delete from t_user where id=%d",userinfo.id);

int ret = mysql_query(&mydbcon,strsql);

if (ret)

int aftret = mysql_affected_rows(&mydbcon);

if (aftret<=0)

return found_recode;

mySql資料庫的一些操作

mysql下讀取表中字段的說明和備註資訊 在mysql下執行完下面這個建表語句後。如何從資料字典中,檢索出這個表的字段的相關資訊?drop table if exists test table create table test table test id int not null auto inc...

mysql資料庫一些常規操作

1.為指定mysql使用者指定表授權 grant select,insert,update,delete on testdb.orders to dba localhost 2.檢視當前mysql所有使用者 select distinct concat user user,host,as query...

mysql 資料庫操作和一些命令

建立資料庫create if not exists dbname default character set charsetname 注 表示可選 必選 或 檢視當前伺服器下資料庫 show 檢視指定資料的定義 show create dbname 得到當前資料庫名稱 select database...