怎么系統分類里面沒有CGI啊?
最近好久沒有發原創文章了,都在架構服務器,編寫CGI程序
開頭用了些天perl,后來發現對腳本語言尤其是特別牛X的正則表達式有些看不懂...
回頭用C語言寫高效率的吧,反正我自己寫過好些C的庫了...
下面貼一個mysql的庫,叫做dmysql
解壓縮以后,make ; make install 安裝
然后編譯程序的時候,包含dmysql.h頭文件,加上 -ldmysql標識,即可
頭里面定義了一個mysql數據庫的結構體,
typedef struct _dmysql_info
{
char *host; /*host for database*/
char *user; /*user name for database*/
char *pswd; /*password to the account*/
char *dbbs; /*name of database*/
} dmysql_info;
記錄集的數據類型
typedef struct _dmysql_record
{
char *s_str;
} dmysql_record;
typedef struct _dmysql_row
{
dmysql_record *s_record;
} dmysql_row;
typedef struct _d_mysql_res
{
int row;
int field;
dmysql_row *s_row;
} dmysql_res;
還有程序運行時候的出錯代碼
#define DMYSQL_QUERY_OKAY 0
#define DMYSQL_SELECT_OKAY 0
#define DMYSQL_CONNECT_ERROR -1
#define DMYSQL_INIT_ERROR -2
#define DMYSQL_QUERY_ERROR -3
#define DMYSQL_RES_ERROR -4
程序一共就3個函數
extern int dmysql_query( const char * s_query, const dmysql_info mysql_info );
給出一句執行的SQL命令,比如UPDATE、INSERT,指定一個數據庫,就可以了
extern int dmysql_select( dmysql_res **rel_res, const char *s_select, const dmysql_info mysql_info );
傳入一個數據庫記錄集的地址,給出一個SELECT記錄的SQL命令,再制定一個數據庫,就可以了
用來釋放內存中在棧里面申明了的記錄集空間
extern void dmysql_free( dmysql_res *res );
下面是演示的程序代碼:
#include <stdio.h>
#include <dmysql.h>
int main( void )
{
dmysql_info db;
db.host="127.0.0.1"; /*host for database*/
db.user="root"; /*user name for database*/
db.pswd=""; /*password to the account*/
db.dbbs="mysql"; /*name of database*/
char *s_query="GRANT ALL ON *.* to 'dorainm'@'127.0.0.1' IDENTIFIED BY '******';";
char *s_sql="SELECT `user`,`host`,`password` FROM `user`;";
int i, j;
dmysql_res *res;
dmysql_query( s_query, db );
printf( "select out : %d\n", dmysql_select( &res, s_sql, db ) );
for( i=0; i<res->row; i++ )
{
for( j=0; j<res->field; j++ )
{
printf("%s\t", ((res->s_row+i)->s_record+j)->s_str );
}
printf( "\n" );
}
dmysql_free( res );
return 0;
};
make test后運行./dmysql
dorainm@desktop:~/workroom/c/mylib/dmysql$ make test gcc -Wall -O3 -o dmysql main.c -ldmysql `mysql_config --libs` `mysql_config --cflags` dorainm@desktop:~/workroom/c/mylib/dmysql$ ./dmysql
select out : 5
root localhost %^$#!@%*&!
root desktop.dorainm.org %^$#!@%*&!
desktop.dorainm.org %^$#!@%*&!
localhost %^$#!@%*&!
dorainm 127.0.0.1 %^$#!@%*&! dorainm@desktop:~/workroom/c/mylib/dmysql$
dmysql自己封裝的mysql庫
2019-10-18 16:16mysql技術網 Mysql
怎么系統分類里面沒有CGI啊? 最近好久沒有發原創文章了,都在架構服務器,編寫CGI程序 開頭用了些天perl,后來發現對腳本語言尤其是特別牛X的正則表達式有些看不懂... 回頭用C語言寫高效率的吧,反正我自己寫過好些C的庫了
延伸 · 閱讀
- 2022-03-07圖文介紹c#封裝方法
- 2022-03-06java使用RestTemplate封裝post請求方式
- 2022-03-06Java 面向對象和封裝全面梳理總結
- 2022-03-06java中httpclient封裝post請求和get的請求實例
- 2022-03-04Python面向對象三大特征 封裝、繼承、多態
- 2022-03-01Java面向對象的封裝特征深度解析
- Mysql
幾種MySQL中的聯接查詢操作方法總結
這篇文章主要介紹了幾種MySQL中的聯接查詢操作方法總結,文中包括一些代碼舉例講解,需要的朋友可以參考下 ...
- Mysql
MySQL 查詢速度慢與性能差的原因與解決方法
隨著網站數據量與訪問量的增加,MySQL 查詢速度慢與性能差的問題就日漸明顯,這里為大家分享一下解決方法,需要的朋友可以參考下...
- Mysql
MySQL server has gone away錯誤提示解決方法
今天遇到類似的情景,MySQL只是冷冷的說:MySQL server has gone away。 ...
- Mysql
MySQL全文索引、聯合索引、like查詢、json查詢速度哪個快
這篇文章主要介紹了MySQL全文索引、聯合索引、like查詢、json查詢速度大比拼,通過實例代碼截圖的形式給大家介紹的非常詳細,具有一定的參考借鑒價值...
- Mysql
MySQL鎖的知識點總結
在本篇文章里小編給大家整理了關于MySQL鎖的知識點總結以及實例內容,需要的朋友們學習下。...
- Mysql
Centos7下使用yum安裝mysql數據庫的詳細教程(增強版)
這篇文章主要介紹了Centos7下使用yum安裝mysql數據庫的詳細教程(增強版),非常不錯,具有參考借鑒價值,需要的朋友可以參考下 ...
- Mysql
MySQL之Field‘***’doesn’t have a default value錯誤解決辦法
這篇文章主要介紹了MySQL之Field‘***’doesn’t have a default value錯誤解決辦法,需要的朋友可以參考下 ...
- Mysql
解決重置Mysql root用戶賬號密碼問題
這篇文章主要介紹了解決重置Mysql root用戶賬號密碼問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下...