//vc工具中添加E:\WAMP\BIN\MYSQL\MYSQL5.5.8\LIB 路径
//在工程设置-》链接》库模块中添加 libmysql.lib
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <winsock.h>
#include "E:\wamp\bin\mysql\mysql5.5.8\include\mysql.h"
void main(){
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server ="localhost";
char *user ="root";
char *password="";
char *database="test";
char sql[1024]="select * from chinaren";
conn=mysql_init(NULL);
if(!mysql_real_connect(conn,server,user,password,database,0,NULL,0)){
fprintf(stderr,"%s\n",mysql_error(conn));
exit(1);
}
if(mysql_query(conn,sql)){
fprintf(stderr,"%s\n",mysql_error(conn));
exit(1);
}
res=mysql_use_result(conn);
while((row = mysql_fetch_row(res))!=NULL){
printf("%s\n",row[2]);
}
mysql_free_result(res);
mysql_close(conn);
}
===============================
#if defined(_WIN32) || defined(_WIN64) //为了支持windows平台上的编译
#include <windows.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"
//定义数据库操作的宏,也可以不定义留着后面直接写进代码
#define SELECT_QUERY "show tables;"
int main(int argc, char **argv) //char **argv 相当于 char *argv[]
{
MYSQL mysql,*handle; //定义数据库连接的句柄,它被用于几乎所有的MySQL函数
MYSQL_RES *result; //查询结果集,结构类型
MYSQL_FIELD *field ; //包含字段信息的结构
MYSQL_ROW row ; //存放一行查询结果的字符串数组
char querysql[160]; //存放查询sql语句字符串
//初始化
mysql_init(&mysql);
//连接数据库
if (!(handle = mysql_real_connect(&mysql,"localhost","user","pwd","dbname",0,NULL,0))) {
fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql));
}
sprintf(querysql,SELECT_QUERY,atoi(argv[1]));
//查询数据库
if(mysql_query(handle,querysql)) {
fprintf(stderr,"Query failed (%s)\n",mysql_error(handle));
}
//存储结果集
if (!(result=mysql_store_result(handle))) {
fprintf(stderr,"Couldn't get result from %s\n", mysql_error(handle));
}
printf("number of fields returned: %d\n",mysql_num_fields(result));
//读取结果集的内容
while (row = mysql_fetch_row(result)) {
printf("table: %s\n",(((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0]) ) ;
}
//释放结果集
mysql_free_result(result);
//关闭数据库连接
mysql_close(handle);
system("PAUSE");
//为了兼容大部分的编译器加入此行
return 0;
}
② C语言操作MySQL数据库,利用update函数改变表中一个值
age字段是数值类型吗?若是则不应该加‘90’上逗号【sql="update my set age=num where id=1";】,变量及数据库字段也不要加;字符类型才要加‘?? ’
③ C mysql_query
看你用的wamp开发目录的话,应该是用的php mysql apache吧,一般出现这个错误有几种情况:
1.你的语句有问题,比如你的sql语句字符串里面某个地方少了个“,”逗号啊,某个地方少了一个括号啊什么的。
2.语句虽然正确,但是有问题,比如给一个非空字段赋空值,或者给一个整数类型传字符变量等等。
3.或者没有数据库连接。一般你可以把数据库连接
<?php
$mysqlhost = 'localhost';
$mysqluser = 'root';
$mysqlpwd = '你的密码';
$mysqldb = '你的数据库名字';
$data_conn = mysql_connect($mysqlhost,$mysqluser,$mysqlpwd);
mysql_selectdb($mysqldb, $data_conn) or die ('Could not select database');
?>这段写到一个文件里面,然后在要用到数据库连接的时候包含一个这个文件,就可以直接数据库操作了,比如上面的文件是c:\wamp\www\conn.php,那么在别的地方include('conn.php');记得mysql_close($data_conn);
然后你可以这样解决,比如你的出问题的文件是c:\wamp\www\test.php,找到报错的行,比如:
<?php
//include('conn.php');
你的代码段;
$sql="你的语句";
//这里这样调试
echo $sql;
renturn;
$result = mysql_query($sql);
//如果你的是insert或者update的话,就不用mysql_fetch_array了
$row = mysql_fetch_array($result);
...
?>
然后你在网页直接输出这个php文件,localhost/test.php
把输出来的sql语句到mysql工具里面运行下看,看看具体的报错,一般这里的报错就比较详细了,无非是一些语法错误,少写了些东西,或者键冲突,值类型什么的。
④ c语言如何调用Mysql数据库文件并进行对数据库的操作呢。
MYSQL m_sqlCon;//声明
mysql_init(&m_sqlCon);//初始化
mysql_real_connect(&m_sqlCon, "127.0.0.1", abc, "root", "hibernate", atoi("3306"),NULL,0)//链接
mysql_query(&m_sqlCon, "SET NAMES GB2312"); //设置查询编码格式
res = mysql_query(&m_sqlCon,"select * from ms_sendlist where flag = 1 order by style desc");//查询
mysql_query(&m_sqlCon, sql);//插入,删除
⑤ mysql数据库
MySQL数据库一般指MySQL,MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发。
mysql是目前网站以及APP应用上用得较多的一个开源的关系型数据库系统,可以对数据进行保存,分段化的数据保存,也可以对其数据进行检索,查询等功能的数据库。
默认的mysql数据库中存有一个库这个就是mysql的系统数据库,可以对其保存系统的数据包括mysql数据库的信息,数据库root账号,普通账号,以及数据库的名称,还有数据库的一些表还有一些数字型的数据类型结构都会有所保存。
mysql数据库的优点
(1)MySQL数据库是用C和C++语言编写的,并且使用了多种编辑器进行测试,以保证源码的可移植性。
(2)支持多个操作系统例如:Windows、Linux、Mac OS等等。
(3)支持多线程,可以充分的利用CPU资源。
(4)为多种编程语言提供API,包括C语言、Java、PHP、Python语言等。
(5)MySQL优化了SQL算法,有效的提高了查询速度。
(6)MySQL内提供了用于管理,检查以及优化数据库操作的管理工具。
(7)它能够作为一个单独的应用程序应用在客户端服务器网络环境中,也可以作为一个库嵌入到其他的软件中并提供多种语言支持。
⑥ 求c语言操作mysql数据库实例
不知你用的是什么代码,不过据我实验,以下代码是可用的 【来自 http://blog.csdn.net/andy_yf/article/details/7487307】
#include<stdlib.h>
#include<stdio.h>
#include"mysql.h"
intmain(intargc,char*argv[])
{
MYSQL*conn_ptr;
conn_ptr=mysql_init(NULL);//连接初始化
if(!conn_ptr){
fprintf(stderr,"mysql_initfailed ");
returnEXIT_FAILURE;
}
conn_ptr=mysql_real_connect(conn_ptr,"localhost","mol","newpassword","mol_test",0,NULL,0);//建立实际连接
//参数分别为:初始化的连接句柄指针,主机名(或者IP),用户名,密码,数据库名,0,NULL,0)后面三个参数在默认安装mysql>的情况下不用改
if(conn_ptr){
printf("Connectionsuccess ");
}
else{
printf("Connectionfailed ");
}
mysql_close(conn_ptr);//关闭连接
returnEXIT_SUCCESS;
}
连接mysql数据库需要以下步骤:
安装mysql开发包, linux下是mysql安装的时候全选就行了, linux 下直接安装mysql-devel
新建工程,占贴代码,注意修改实际的用户名、密码 ...
设置包含目录, 在windows下, 找到你的mysql安装位置,找到include文件夹, 设置ide增加该文件夹到包含目录 【可能是 C:Program FilesMySQLMySQL Server 5.0include】
设置连接目录, 同设置包含目录一样 找到mysql的lib目录,设置ide 【可能是C:Program FilesMySQLMySQL Server 5.0libopt】
设置连接选项, 需要设置ide连接选项,增加 -lmysql
编译连接运行
⑦ 用C语言如何对MySQL数据库进行操作
里的大部分代码参考了MySQL发行包里面的.c源文件,大家也可以去里面找找相关的代码,下面这段代码实现了连接到本地MySQL服务器上9tmd_bbs_utf8数据库,从数据表tbb_user中根据输入的userid取得该用户的用户名并打印输出到终端。
if defined(_WIN32) || defined(_WIN64)为了支持windows平台上的编译
#include <windows.h> #endif #include <stdio.h> #include <stdlib.h> #include "mysql.h"
我的机器上该文件在/usr/local/include/mysql下
定义MySQL数据库操作的宏,也可以不定义留着后面直接写进代码
define SELECT_QUERY "select username from tbb_user where userid = %d" int main(int argc, char **argv)char **argv 相当于 char *argv[] {
MYSQL mysql,*sock;定义数据库连接的句柄,它被用于几乎所有的MySQL函数
MYSQL_RES *res;查询结果集,结构类型
MYSQL_FIELD *fd ;包含字段信息的结构
MYSQL_ROW row ;存放一行查询结果的字符串数组
char qbuf[160];存放查询sql语句字符串
if (argc != 2) { //检查输入参数 fprintf(stderr,"usage : mysql_select <userid>\n\n"); exit(1); } mysql_init(&mysql); if (!(sock = mysql_real_connect(&mysql,"localhost","dbuser","dbpwd","9tmd_bbs_utf8",0,NULL,0))) { fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql)); perror(""); exit(1); } sprintf(qbuf,SELECT_QUERY,atoi(argv[1])); if(mysql_query(sock,qbuf)) { fprintf(stderr,"Query failed (%s)\n",mysql_error(sock)); exit(1); } if (!(res=mysql_store_result(sock))) { fprintf(stderr,"Couldn't get result from %s\n", mysql_error(sock)); exit(1); } printf("number of fields returned: %d\n",mysql_num_fields(res)); while (row = mysql_fetch_row(res)) { printf("Ther userid #%d 's username is: %s\n", atoi(argv[1]),(((row[0]==NULL)&&(!strlen(row[0]))) ? "NULL" : row[0])) ; puts( "query ok !\n" ) ; } mysql_free_result(res); mysql_close(sock); exit(0); return 0;
为了兼容大部分的编译器加入此行
}
编译的时候,使用下面的命令
gcc -o mysql_select ./mysql_select.c -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient (-lz) (-lm) 后面两个选项可选,根据您的环境情况运行的时候,执行下面的命令
./mysql_select 1
将返回如下结果:
number of fields returned: 1 Ther userid #1 's username is: Michael query ok !
上面的代码我想大部分都能看明白,不明白的可以参考一下MySQL提供的有关C语言API部分文档,各个函数都有详细说明,有时间我整理一份常用的API说明出来。