![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-10-31 09:39 |
共 47,815 主题排行 / 349,930 发帖 / 今日 0 篇 / 48,290 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » c访问mysql的blob字段 |
| 可打印版本 1,139 / 1 |
| 第1楼 wfnic | 发表于 2008-11-12 02:25 |
| 新手上路 发帖 2 积分 6 | |
|
c访问mysql的blob字段 win2k mysql-4.0.5 devc-4.9通过
#include<windows.h> #include<string.h> #include<stdio.h> #include<stdlib.h> #include<fcntl.h> #include<io.h> #include<mysql.h> int main(void) { unsigned long result,r,len1,i; unsigned long *t; MYSQL mysql;// need a instance to init MYSQL_RES *res; MYSQL_ROW row; MYSQL_FIELD *field; char *qs,*hout,*query; if((qs=getenv("QUERY_STRING"))!=NULL) { strcpy(query,"select body from jdbctest.mess_body where id="); len1=strlen(query); for(i=0;qs[i]!='\0';i++) query[len1+i]=qs[i]; } else {query="select body from jdbctest.mess_body where id=14";} mysql_init(&mysql); mysql_real_connect(&mysql,"192.168.1.6", "wfnic", "197809",NULL,3306,NULL,0); mysql_real_query(&mysql,query,(unsigned int)strlen(query)); res =mysql_store_result(&mysql); if (res) row = mysql_fetch_row(res); t = mysql_fetch_lengths(res); field = mysql_fetch_field(res); if (IS_BLOB(field->type)){ if (_setmode(_fileno(stdout),_O_BINARY)!=1){ r=t[0]; qs=row[0]; hout="Content-Type: image/jpeg\n\n"; fprintf(stdout,hout); fwrite(qs,r,1,stdout); }}else fprintf(stdout,"Content-Type: text/plain\n\n%s",row[0]); mysql_free_result(res); mysql_close(&mysql); return 0; } |
|
| 第2楼 wfnic | 发表于 2008-11-12 02:28 |
| 新手上路 发帖 2 积分 6 | |
|
网上首发!c访问mysql的blob字段 如果该纪录内容为二进制 一般的办法是不能正常输出 这大大限制了mysql的高效率应用 不过这个程序做cgi应用时 经测试 速度没有同样功能的apache+mod_php快
我的目标是:专做别人做不了的! qq53096035 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |