易截截图软件、单文件、免安装、纯绿色、仅160KB

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;


相关文档:

Linux下Eclipse设置汉字编码

今天,把windows下的工程导入到了Linux下eclipse中,由于以前的工程代码,都是GBK编码的,而Ubuntu默认是不支持GBK编码的。所以,首先我们要先让Ubuntu支持GBK,方法如下:
   1.
      修改/var/lib/locales /supported.d/local文件,在文件中添加
      z ......

Linux指令 文件访问权限

[root@localhost root]# ls -l
会显示目录或文件信息:drwxr-xr-x 2 root root 4096 06-29 14:30 Test
                               -rwxr--r-- 2 root roo ......

simply web server by unix c program

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/wait.h>
#define QLEN 20
# ......

C\C++中数组元素下标越界可能引起的问题

数组是类型相同的对象的序列,其中的对象称为数组元素。也可以将数组想像成一连串的用下标值编号的相邻存储区。
       可能在某些编程语言中,一个下标变量是不允许超出数组定义中所设的界限的。但是在C和C++中,数组是没有这种安全措施的。下面先来看看数组下标越界的几种异常结果。
&nb ......

教你理解复杂的C/C++声明[转]

原文:
http://www.codeproject.com/cpp/complex_declarations.asp
作者:Vikram A Punathambekar
介绍
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明:我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号