c mysql數據庫_C實現MySQL數據庫操作

C實現MySQL數據庫操作

兩個月前,也就是9月份,心血來潮在windows下實現了用C連接數據庫,當時很是有把linux下一并給實現了。但是沒有想得那么簡單。這個任務一直推遲到了現在才完成,究其原因:1.我直接用eclipse開發工具,對于環境變量的設置不是很熟。2.linux系統庫文件結構不熟悉,對于mysql提供的庫文件沒有放對位置。3.當時比較煩躁,沒有沉下心來好好的學習。

兩個月后的今天終于不經意的弄好了,雖然不是什么大的突破,但是對于一個初學C語言的人來說,這可是一個突破。代碼如下:#include "include/mysql.h"

#include "include/errmsg.h"

#include

/**

* Define the QUERY STATUS

* */

#define QUERY_SUCCESS 1

int main(int argc, char* argv[])

{

MYSQL mysql;

MYSQL_ROW row;

MYSQL_FIELD *field;

mysql_init(&mysql);

mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"gb2312");

if(mysql_real_connect(&mysql,"localhost","root","root","test",3306,0,0))

{

mysql_select_db(&mysql,"test");

//insert

mysql_query(&mysql,"insert into ids values(2);");

//query

mysql_query(&mysql,"select id from ids");

MYSQL_RES* mysql_res = mysql_store_result(&mysql);

while((row = mysql_fetch_row(mysql_res)) != NULL){

for(unsigned int j = 0; j < mysql_num_fields(mysql_res); j++){

field = mysql_fetch_field_direct(mysql_res, j);

printf("%s %s ",field->table,field->name);

}

}

//update

mysql_query(&mysql,"update ids set id = 123");

//delete

mysql_query(&mysql,"delete from ids where id = 1");

return QUERY_SUCCESS;

}

else

{

int err = mysql_errno(&mysql);

printf("錯誤:%d",err);

}

mysql_close(&mysql);

return 0;

}對于

其實在linux和windows下mysql的操作是一樣的,只是mysql的庫文件放置的位置不同而已。

在linux下把libmysql.so.16拷貝到/usr/lib目錄下,一切正常。別忘了開mysql數據庫服務。

相關文檔:

如果只是一個數據庫的話,我們一般習慣這樣寫:mysql_select_db("guestbook");

mysql_query('select * from users');

但是如果是連接多個mysql,有可能出現同名的數據庫,或者數據庫中出現同名的表,所以就必須用完整的形式了,如下代碼:

$link1 = mysql_connect('localhost1','root','root');

mysql ......

查詢及刪除重復記錄的方法

(一)

1、查找表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷

select * from people

where peopleId in (select? peopleId? from? people? group? by? peopleId? having? count(peopleId) > 1)

2、刪除表中多余的重復記錄� ......

共3個文件

IncDB.php數據庫連接

index.php首頁

InsetToDB.php數據庫操作

數據庫lguestbook里面建表

CREATE?TABLE?`intd`?(

`id`?int(11)?NOT?NULL?auto_increment,

`name`?varchar(255)?character?set?utf8?collate?utf8_bin?N ......

添加字段:

MYSQL

alter table tb add col2 varchar(10)

MSSQL2000

alter table tb add col2 varchar(10)

修改字段:

MYSQL

alter table tb modify col2 varchar(20)

MSSQL2000

alter table tb?alter column?col2 varchar(20)

刪除字段:

MYSQL

alter table tb drop column col ......

安裝后MYSQL5后,發現啟動出錯.

出錯代碼:1067

解決辦法如下:

刪除%windows%/my.ini

刪除其它地方的my.ini

在mysql安裝目錄下把my-small.ini復制為my.ini

在my.ini最后一行插入:

CODE:

[mysqld]

#設置basedir指向mysql的安裝路徑

basedir=C:\mysql-5.1.11-beta-win32

datadir=C:\mysql-5.1.11-beta-win32\dat ......

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530860.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530860.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530860.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php生成不重復時間戳,PHP獲取時間戳和微秒數以及生成唯一ID

microtime函數描述&#xff1a;返回當前Unix時間戳和微秒數語法&#xff1a;mixed microtime( [ bool $get_as_float ] )//直接輸出echo microtime();//得到的是 如&#xff1a;0.26672100 1585622985 前面是當前微秒數&#xff0c;后面是正常時間戳&#xff0c;中間以空格分隔…

php異步處理任務工具,PHP實現異步任務分發處理利器-Gearman

通常&#xff0c;多語言多系統之間的集成是個大問題&#xff0c;一般來說&#xff0c;人們多半會采用WebService的方式來處理此類集成問題&#xff0c;但不管采用何 種風格的WebService&#xff0c;如RPC風格&#xff0c;或者REST風格&#xff0c;其本身都有一定的復雜性。相比…

java dos窗口小工具下載,maxdos 9 3-maxdos工具箱 v9.3 官方版

maxdos 9 3maxdos工具箱是一個dos工具箱&#xff0c;maxdos工具箱為安裝好的電腦系統加入dos&#xff0c;方便用戶維護與備份還原&#xff0c;是完全傻瓜化的工作模式&#xff0c;更是可以直接啟動硬盤上的光盤ISO鏡像一鍵啟動。maxdos工具箱特色說明&#xff1a;1、支持進入DO…

java 1.7 linux rpm,linux下用rpm 安裝jdk 7的jdk-7u79-linux-x64.rpm

linux下用rpm 安裝jdk 7的jdk-7u79-linux-x64.rpm步驟一、下載jdk的rpm安裝包步驟二、如果linux是centos的話&#xff0c;請先卸載openjdk&#xff0c;參考文檔&#xff1a;使用rpm命令卸載CentOS 6.4自帶的OpenJDK步驟三、安裝jdk-7u79-linux-x64.rpm安裝包先執行以下命令給所…

普通用戶無法執行java,CentOS tomcat普通用戶執行配置安裝

CentOS tomcat經過長時間的發展&#xff0c;這里我發表一下個人理解&#xff0c;下面就這就來講術CentOS tomcat。CentOS tomcat6_jdk1.6_安裝配置_開啟自動運行,普通用戶執行 (轉)秀脫linux筆記之CentOS tomcat6實戰篇由于前段時間一直在外頭出差&#xff0c;沒有完成CentOS t…

elementui樹形復選框,element-ui checkbox 組件的樹形聯動

前言示例版本為 Element-ui 2.13.0 Vue 2.6.11最近想弄 Element-ui checkbox 的多級聯動&#xff0c;網上相關的例子大多數為二級聯動&#xff0c;自己研究了一下&#xff0c;弄了一個樹形菜單的多級聯動&#xff0c;常用于角色管理等業務。(僅供參考&#xff0c;未考慮性能問…

php 魔術方法 sleep,php 魔術方法 sleep() wakeup()

__sleep() 和 __wakeup()public array __sleep ( void )void __wakeup ( void )serialize() 函數會檢查類中是否存在一個魔術方法 __sleep()。如果存在&#xff0c;該方法會先被調用&#xff0c;然后才執行序列化操作。此功能可以用于清理對象&#xff0c;并返回一個包含對象中…

java 先入先出,java_阻塞隊列(FIFO先進先出)

java_阻塞隊列(FIFO先進先出)ArrayBlockingQueue&#xff1a;由數組結構組成的有界阻塞隊列&#xff1b;LinkedBlockingQueue&#xff1a;由鏈表結構組成的有界阻塞隊列(但大小默認值為&#xff1a;Integer.MAX_VALUE)&#xff1b;PriorityBlockingQueue&#xff1a;支持優先級…

PHP能在Mac上運行嗎,PHP Composer無法在Mac上運行

我安裝了bitnami mac堆棧主要是因為我的項目需要至少PHP 5.4.7版本.但是,我遇到了作曲家的問題.這是我跑步時遇到的錯誤&#xff1a;php composer.phar install --dev錯誤&#xff1a;Richard-Knops-MacBook-Pro:my-project richardknop$php composer.phar install --devdyld: …

主機安裝php網站,php支持虛擬主機(php網站空間)

php設置虛擬主機&#xff0c;主要是為了在ie輸入地址欄是&#xff0c;可以輸入任意的&#xff0c;而不是localhost/&#xff0c;為了方便&#xff0c;但是設置起來很不方便的。。發現不能實現每個站點使用不同的PHP版本&#xff0c;想向大家求教一下&#xff0c;有沒有能讓。支…

php時分獲取秒數,javascript與php時/分/秒與秒數互轉

javascript&#xff1a;/*時間轉換成秒*/function time_to_second(time){var arr time.split(‘:‘)var hour arr[0]?arr[0]:0var minute arr[1]?arr[1]:0var second arr[2]?arr[2]:0var ret hour * 3600 minute * 60 secondreturn ret}/*秒轉換成時間*/function sec…

lbp matlab程序,求教大神給解釋一下LBP特征提取每部分程序是干什么的

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓function X1 LBP(Resimage)% Returns a rotation invariant LBP (uniform patterns) histogram (10 bins)% of picture X.% the size of picture X must be at least 3x3 pixelsw1 (1/sqrt(2))^2;%根號1/2平方w2 (1-1/sqrt(2))*…

python以20字符寬居中輸出,Python 字符串內置方法(一)

以下方法只需要知道用法就行了&#xff0c;權當了解&#xff0c;不用硬背&#xff0c;以后需要用到的時候再回來看說明&#xff1a;一般方法中前面是is開頭的就是判斷來的&#xff0c;輸出不是True就是False&#xff0c;例如isalpha()方法capitalize()方法&#xff1a;首字母大…

php 復選框全選和取消,基于JavaScript實現復選框的全選和取消全選

這篇文章主要為大家詳細介紹了基于JavaScript實現復選框的全選和取消全選&#xff0c;具有一定的參考價值&#xff0c;感興趣的小伙伴們可以參考一下本文實例為大家分享了js復選框的全選和取消全選的具體代碼&#xff0c;供大家參考&#xff0c;具體內容如下效果圖&#xff1a;…

oracle 字段全大寫,Oracle如何批量將表中字段名全轉換為大寫(利用簡單存儲過程)...

前言今天查詢一個數據字段一直提示字符無效&#xff0c;明明在數據庫表字段中是存在的&#xff1b;查詢后得知&#xff0c;數據庫表字段為小寫時&#xff0c;查詢需要將字段名小寫并加上雙引號&#xff1b;表名同理&#xff0c;我這里表名是大寫&#xff0c;暫時不需要改。搜到…

oracle的al32utf8,oracle字符集修改(AL32UTF8-UTF8)

author&#xff1a;skatetime&#xff1a;2012/04/10AL32UTF8->UTF8步驟shutdown immediate;startup mount;alter session set sql_tracetrue;alter system enable restricted session;alter system set job_queue_processes0;alter system set aq_tm_processes0;alter data…

javascript date php date,JavaScript Date 知識淺析

Date函數new Date()Date 對象會自動把當前日期和時間保存為其初始值。date.getDate()從 Date 對象返回一個月中的某一天 (1 ~ 31)。date.getDay()從 Date 對象返回一周中的某一天 (0 ~ 6)。周日是0。date.getMonth()從 Date 對象返回月份 (0 ~ 11)。date.getFullYear()從 Date …

16字節 oracle md5,Oracle中的MD5加密

因為要用到MD5加密&#xff0c;所以在網上搜了一下相關資料&#xff0c;并進行仔細研究。其核心就是MD5編碼的數據包函數&#xff1a;DBMS_OBFUSCATION_TOOLKIT.M因為要用到MD5加密&#xff0c;所以在網上搜了一下相關資料&#xff0c;并進行仔細研究。其核心就是MD5編碼的數據…

ip字符串轉換 linux,Linux網絡編程入門

在日常使用&#xff0c;我們更多的使用十進制字符串表示IP地址&#xff0c;比如192.169.130.66&#xff0c;而不是記憶32位的IP地址(關鍵是太長了記不住呀)&#xff0c;使用字符串IP更為方便&#xff0c;可讀性也更好。但是根據上述in_addr定義&#xff0c;網絡編程中需要的是網…

linux php目錄是否存在,PHP判斷文件或者目錄是否可寫,兼容windows/linux系統

在PHP中&#xff0c;可用is_writable()函數來判斷一個 文件/目錄 是否可寫&#xff0c;用是否可生成文件的方式判斷目錄是否可寫&#xff1b;網上的一些代碼大多數能判斷linux系統&#xff0c;但windows服務器下判斷不準確。下面的代碼兼容windows和linux判斷文件或目錄是否可寫…