快速业务通道

Linux下使用C语言连接Mysql

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-03
/* Simple C program that connects to MySQL Database server*/
#include <mysql.h>
#include <stdio.h>
main()
{
char *begin="n --------------BEGIN--------------- nn";
printf(begin);
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = ""; /* 此处改成你的密码 */
char *database = "epude_school";
conn = mysql_init(NULL);
/* Connect to database */
/*
CLIENT_MULTI_RESULTS
通知服务器,客户端能够处理来自多语句执行或存储程序的多个结果集.
如果设置了CLIENT_MULTI_STATEMENTS,将自动设置它.
*/
if (!mysql_real_connect(conn, server,
user, password, database, 0, NULL, CLIENT_MULTI_RESULTS)) {
fprintf(stderr, "%sn", mysql_error(conn));
exit(1);
}
char *tell="SQL Table Query...n";
printf(tell);
// SQL 普通表查询
char *sql="select password from Users whereUserName=''client1@192.168.1.122''";
if (mysql_query(conn, sql))
{
fprintf(stderr, "%sn", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
printf("SqlCommand:%s",sql);
printf("n");
while ((row = mysql_fetch_row(res)) != NULL)
{
printf("PassWord:%s nn", row[0]);
}
mysql_free_result(res);
char *tell2="SQL Store Query More...n";
printf(tell2);
// SQL 存储过程查询
char *sql1="call P_GetCurrentCostPriceByUserName(''client1@192.168.1.122'')";
if (mysql_query(conn, sql1))
{
fprintf(stderr, "%snn", mysql_error(conn));
exit(1);
}
/*
存储过程默认返回的是多个结果集,
要用mysql_next_result取出并检查 拥有帝国一切,皆有可能。欢迎访问phome.net
下一个的结果集.否则在存储过程下的
其它查询语句都会出现 “Commands out of sync;
you can''t run this command now”错误!
*/
do
{
if ((res = mysql_use_result(conn)))
{
printf("SqlCommand:%s",sql1);
printf("n");
while ((row = mysql_fetch_row(res)) != NULL)
{
printf("UserName:%s n", row[0]);
printf("Balance:%s n",row[1]);
printf("Price:%s nn",row[2]);
}
}
}while (!mysql_next_result(conn));


mysql_free_result(res);
char *tell3="SQL View Query More...n";
printf(tell3);
// SQL 视图查询
char *sql2="select CameraID,URL,RtspName,PW,PTZ,PTZServer from V_UserEquipment whereLoginName=''client1@192.168.1.122''";
if (mysql_query(conn, sql2))
{
fprintf(stderr, "%sn", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
printf("SqlCommand:%s",sql2);
printf("n");
while ((row = mysql_fetch_row(res)) != NULL)
{
printf("CameraID:%s n", row[0]);
printf("URL:%sn",row[1]);
printf("RtspName:%s n",row[2]);
printf("PW:%s n", row[3]);
printf("PTZ:%s n",row[4]);
printf("PTZServer:%s nn",row[5]);
}
mysql_free_result(res);
mysql_close(conn);
char *end=" --------------END---------------- n";
printf(end);
}

/*编译*/
// gcc -o sqla $(mysql_config --cflags) sqla.c $(mysql_config --libs)

/*运行结果*/
--------------BEGIN--------------- 拥有帝国一切,皆有可能。欢迎访问phome.net
SQL Table Query...
SqlCommand:select password from Users where UserName=''client1@192.168.1.122''
PassWord:client1
SQL Store Query More...
SqlCommand:call P_GetCurrentCostPriceByUserName(''client1@192.168.1.122'')
UserName:client1@192.168.1.122
Balance:30000
Price:0.05
SQL View Query More...
SqlCommand:select CameraID,URL,RtspName,PW,PTZ,PTZServer from V_UserEquipment where LoginName=''client1@192.168.1.122''
CameraID:051010049@192.168.1.122_0
[url=rtsp://192.168.1.93/1.mp4]URL:rtsp://192.168.1.93/1.mp4[/url]
RtspName:admin
PW:admin
PTZ:1
PTZServer:ptzserver1@192.168.1.122
--------------END----------------

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号