易截截图软件、单文件、免安装、纯绿色、仅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指令 文件访问权限

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

C图形编程学习


一、屏幕操作函数
1. clrscr()清除字符窗口函数
2. window()字符窗口函数
3. gotoxy()光标定位函数
4. clreol() 清除光标行尾字符函数
5. insline() 插入空行函数
6. delline() 删除一行函数
7. gettext() 拷进文字函数
8. puttext() 拷出文字函数
9. movetext() 移动文字函数
二、字符属性函数
10. textmode( ......

c陷阱与缺陷阅读笔记

【1】 “ = ”的优先级低于  “ || ” 且 “ = ” 为右结合性,注意一下代码为死循环:while(c=' '||c=='\t'||c=='\n')

程序本意是跳过空格,制表符,换行符,但由于不小心将c=='  '写成了c= '  '导致程序进入死循环
【2】a=-1 在很老的C版本里理解为 a =-  1
【3 ......

C 程序的存储空间布局

C 程序有下面几个部分组成:
  1  正文段:这是CPU 执行的机器指令的部分。通常正文段是可以共享的,所以即使是频繁执行的程序(如:文本编辑器)在存储器上也只有一个副本。另外正文段常常是只读的,以防止程序因为意外而修改其自身的指令。
  2  初始化数据段:通常将此段称为数据段,它包含了程序 ......

C/C++程序员应聘常见面试题深入剖析(转载)


1.引言
  本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见­。
许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号