C实现MySQL数据库操作
两个月前,也就是9月份,心血来潮在windows下实现了用C连接数据库,当时很是有把linux下一并给实现了。但是没有想得那么简单。这个任务一直推迟到了现在才完成,究其原因:1.我直接用eclipse开发工具,对于环境变量的设置不是很熟。2.linux系统库文件结构不熟悉,对于mysql提供的库文件没有放对位置。3.当时比较烦躁,没有沉下心来好好的学习。
两个月后的今天终于不经意的弄好了,虽然不是什么大的突破,但是对于一个初学C语言的人来说,这可是一个突破。代码如下:#include "include/mysql.h"
#include "include/errmsg.h"
#include <stdio.h>
/**
* 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,有可能出现同名的数据库,或者数据库中出现同名的表,所以就必须用完整的形式了,如下代码:
<?php
$link1 = mysql_connect('localhost1','root','root');
mysql ......
安装后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 ......
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
是C深度解剖 P47的一系列关于define和typedef的用法:
/****以下是
#define
a int[10]
的各种用法,都报错
***
a[10]
a[10];
//**************
a[10]
a;
//**************
int
a[10];
//*** ......
各位大哥,有清楚GPS接收灵敏度的指标---载噪比C/N, C/No的有何含义,两者有何区别,可以在这里讨论一下。
C/No=10* Log(C/KTB)﹐不包括天線到Correlator的PATH LOSS及LNA等線路引進的噪音﹔而C/N則包括一切噪音。
C是指信號強度﹐K是指波爾 ......