linux下gtk中使用C连接mysql
Code:
1.环境配置
一般情况下安装了MySQL的机器很少安装开发包,这个需要注意。也就是您需要在程序中包含这样的语句:
#include <mysql.h>
如果在编译的时候提示含有类似于找不到 mysql.h 的信息,这就说明您没有安装相关开发包。
还有您必须建立一个数据库与一些表,这个在本文中会使用。
2.我们先链接数据库。
/****连接****数据库****/
#include <mysql.h> /*包含文件*/
MYSQL *myconnect = NULL; /*定义一个MYSQL类型的指针,它代表的是MySQL数据库的操作对象*/
GtkWidget *disconnect (void) /*这里是我原先一个程序中用过的函数,并不属于本文重点*/
{
char *user = "root", *pwd = "", *dbname = "test"; /*这里要作适当修改,用数据库用户root,用户密码为空,连接test数据库*/
myconnect = mysql_init(myconnect); /*用函数mysql_init初始化myconnect*/
if (mysql_real_connect (myconnect, "localhost", user, pwd,dbname,MYSQL_PORT,NULL,0)== NULL)
{
error("未能连接上数据库.");
}
/*用函数mysql_real_connect连接数据库,它需要8个参数,与以上对应分别是:1.初始化的MySQL结构,2.所要链接的数据库的IP地址或主机名,3.链接数据库的用户,4.用户口令,5.数据库名,6.端口号,上边的MYSQL_PORT是一个宏,如果一切都是默认的话不用显式定义,7.套接字,一般为NULL,8.这个参数一般为0。当然,并不是8个参数都必须写上,一些参数可以以后再用。*/
}
3.典型操作
插入操作:
gchar query_buf [100]; /*定义一个数组用来存放SQL语句*/
const gchar *username,*passwd,*passwd_ffirm,*email,*email_ffirm;
................/*这里省略对username等的赋值语句*/
sprintf (query_buf,"INSERT INTO Users values (\'%s\',\'%s\',\'%s\',\'%s\')",NULL,username,passwd,email);/*将语句存放在数组query_buf中,我在数据库的Users表中第一个是自动增长的ID,所以第一个需插入NULL。注意:SQL中的单引号等不能直接出现在C语言中,需要用转义字符*/
if (mysql_query (myconnect,query_buf) == 0) /*mysql_query执行函数执行成功返回0*/
{
ok("注册成功.");
}
else
{ error("注册失败!可能是已经存在这个用户名称了。请尝试换一个用户名。"); }
删除等操作类似。
SELECT操作:
MYSQL_RES *sqlres;
相关文档:
[root@localhost root]# ls -l
会显示目录或文件信息:drwxr-xr-x 2 root root 4096 06-29 14:30 Test
-rwxr--r-- 2 root roo ......
#include <stdio.h>
int Count=0;
void move(char x,int n,char z){
printf(" %d. disk %d: %c => %c\n",++Count,n,x,z);
}//move
// 将塔座x上按直径由小到大且自上而下编号为1至n的n个圆盘按规则搬到塔座z上,y可用作辅助塔座
void Hanoi(int n,char x,char y,char z){
if (n==1) move(x,1,z ......
原文:
http://www.codeproject.com/cpp/complex_declarations.asp
作者:Vikram A Punathambekar
介绍
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明:我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修 ......
1.引言
本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。
许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达 ......
我将业务代码去掉了,只是用来搭个基本框架,用到的时候直接拿来用就可以了。(我这个是起一个socket)如果有什么建议请联系我。ChuangshengGuan@Gmail.com
main.c
Code:
#include "Services.h"
int main(int argc, char *argv[])
{
SERVICE_TABLE_ENTRY ServiceTable[2];
/* 指向表示服 ......