Linux下的应用程序怎么才能使用MySQL啊?

yym314 2005-12-30 11:29:02
Linux下的应用程序怎么才能使用MySQL啊?
MyODBC能在Linux下用吗?如果可以的话,需要做那些设置啊?
请大家指教,最好是能给个例子了.
...全文
199 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
walkany 2006-01-06
  • 打赏
  • 举报
回复
如果直接用mysql_real_connect连接在5。0之前是可以得,后来的版本就不可以了。另外查询语句以前可以不给准确的查询字符串得长度,但是5.0之后你要给准确的长度啊。我就是在升级到5.0后发现原来所有的程序都不能跑了,才增加了mysql_option语句并且修改了查询语句的。
walkany 2006-01-05
  • 打赏
  • 举报
回复
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;

assert(mysql_init(&mysql)!=NULL);

if((mysql_real_connect_yyy(&mysql,NULL,"root","password",dbname,0,NULL,0)==NULL))
{ fprintf(stdout,"error on connect: %s\n",mysql_error(&mysql));
exit(EXIT_FAILURE);
}


sqllen=sprintf(sql_str,"select field_name,fld_type,defa_val,fld_desc from fields_list where table_name='%s' and is_input_field='Y' and (db_name='%s' or db_name is NULL) ",tablename,dbname);

#ifdef DEBUG
prog_debug(sql_str,'Y');
#endif

if(mysql_real_query(&mysql,sql_str,sqllen)!=0)
{ fprintf(stdout,"error on query: %s\n",mysql_error(&mysql));
exit(EXIT_FAILURE);
}

while((row=mysql_fetch_row(res))!=NULL)
{
if(i!=0)
{ strcat(sql_str,", ");
strcat(value_str,", ");
}else
if(row[3]!=NULL && strcmp(row[3],"SIMG")==0) //if the field is a image field then, save image to image db, and get image id save here
{
}

}


*************************************************************
下面是函数的定义:

MYSQL * STDCALL mysql_real_connect_yyy(MYSQL *mysql, const char *host, const char *user, const char *passwd,const char *db, unsigned int port, const char *unix_socket, unsigned long clientflag)
{
MYSQL * mysqlret;
prog_debug("in the connect_yyy",'Y');
/* new1 */
//load_defaults("my",load_default_groups,&argc,&argv);
//new1 end


//mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, default_charset);

// mysql_options(&mysql,MYSQL_OPT_COMPRESS,0);
mysql_options(mysql,MYSQL_READ_DEFAULT_GROUP,"mysql");
// mysql_options(mysql, MYSQL_OPT_LOCAL_INFILE, 0);
//mysql_options(mysql, MYSQL_SET_CHARSET_NAME, charset_name);
mysqlret= mysql_real_connect(mysql,NULL,/*user*/ "root","guchengxian" /*passwd*/ ,db,/* port*/ 309501,unix_socket,clientflag);
prog_debug(db,'Y');
prog_debug(host,'Y');
// mysqlret= mysql_real_connect(mysql,NULL,"mysql","guchengxian","clothes", port,/*unix_socket*/ 309501,clientflag);
prog_debug("after connect ",'Y');
prog_debug(mysql_error(mysql),'Y');
return mysqlret;
}

*********************************************************************
下面是makefile
gcc -Wall -g -I${IPATH} -L/usr/lib/mysql softwareregi.c functions.c db_func.c query_func.c promtion.c -lmysqlclient -lz -lcrypt -lnsl -lm -lcgi -o $(OPATH)/softwareregister.cgi


yyy790601 2006-01-04
  • 打赏
  • 举报
回复
给你个执行sql的例子,网上类似代码很多。

#include <unistd.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <mysql/mysql.h>
#include <signal.h>
#include <errno.h>
#include <syslog.h>

MYSQL mysql;

main()
{
char host[32]="localhost";
char user[32]="root";
char passwd[32]="abc";
char dbname[32]="test";

if( mysql_init(&mysql) == NULL )
{
syslog(LOG_USER|LOG_INFO,"inital mysql handle error\n");
return 1;
}
if (mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0) == NULL)
{
syslog(LOG_USER|LOG_INFO, "Failed to connect to database: Error: %s\n",mysql_error(&mysql));
return 1;
}
else
syslog(LOG_USER|LOG_INFO, "connect to database: \n");
find_ps();
db_close();
return 0;
}

int db_close()
{
mysql_close(&mysql);
return 0;
}

int find_ps ()
{
MYSQL_ROW m_row;
MYSQL_RES *m_res;
char sql[1024],username[32];
int res=1;
int *id;
sprintf(sql,"select id from username");
if(mysql_query(&mysql,sql) != 0)
{
syslog(LOG_USER|LOG_INFO, "select ps_info Error: %s\n",mysql_error(&mysql));
return res;
}
m_res = mysql_store_result(&mysql);
if(m_res==NULL)
{
syslog(LOG_USER|LOG_INFO, "select username Error: %s\n",mysql_error(&mysql));
res = 3;
return res;
}
if(m_row = mysql_fetch_row(m_res))
{
printf("m_row=%d\n",atoi(m_row[0]));
res = 0;
}
mysql_free_result(m_res);
return res;
}


[/code:1:f09d522785]
编译命令
gcc -g connect_db.c -L/usr/lib/mysql -lmysqlclient -lz
pinelinda 2006-01-04
  • 打赏
  • 举报
回复
去找个mysql帮助看看吧,mysql的c api 很好用。
基本上是

mysql_real_connect()
mysql_query()
mysql_store_result()
mysql_fetch_row()
mysql_free_result()
mysql_close()
fierygnu 2006-01-03
  • 打赏
  • 举报
回复
用C API或者MySQL++ API。
yym314 2006-01-03
  • 打赏
  • 举报
回复
C++啊
PearlCrystal 2006-01-02
  • 打赏
  • 举报
回复
MySQL提供了不同语言的API接口,到网上查查,应该很多的资料可用的!!
yyy790601 2005-12-30
  • 打赏
  • 举报
回复
你用什么语言连接mysql。
c? vb? php? perl? python?...
x86 2005-12-30
  • 打赏
  • 举报
回复
看这里:
MySQL中文参考手册
http://www.huihoo.com/mysql/manual/manual_Clients.html#Clients

装上mysql-devel包,会有例子的
fierygnu 2005-12-30
  • 打赏
  • 举报
回复
什么语言?MySQL提供有API接口。myODBC也可以。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧