我程序如下,大家看看到底哪里错了.
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
int main(int argc,char *argv[])
{ int loca,i;
unsigned long* len;
unsigned long sum_len,se_len,sum1_len;
FILE *fp,*fp1;
char ch[3],str[513]; char buf[200000];
char sql_str[200]; fp1=fopen("/home/yyy/yyydoc/yyy.jpg","r");
fp=fopen("/home/yyy1.jpg","wb"); assert(mysql_init(&mysql)!=NULL);
if(mysql_real_connect(&mysql,NULL,"root","guchengxian","test",0,NULL,0)==NULL)
{
fprintf(stderr,"error on connect: %s\n",mysql_error(&mysql));
exit(EXIT_FAILURE);
} sprintf(buf,"insert into img(r_id,fld,blob_size) values(1,'");
sum_len=strlen("insert into img(r_id,fld,blob_size) values(1,'");
sum1_len=sum_len;
while((se_len=fread(str,1,512,fp1))>0)
{
//unsigned long mysql_real_escape_string(MYSQL *mysql, char *to, const char *from, unsigned long length)
sum1_len=sum1_len+se_len;
se_len=mysql_real_escape_string(&mysql, &buf[sum_len],str, se_len);
sum_len=sum_len+se_len;
}
printf("The souce file length is %i",sum1_len);
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
int main(int argc,char *argv[])
{ int loca,i;
unsigned long* len;
unsigned long sum_len,se_len,sum1_len;
FILE *fp,*fp1;
char ch[3],str[513]; char buf[200000];
char sql_str[200]; fp1=fopen("/home/yyy/yyydoc/yyy.jpg","r");
fp=fopen("/home/yyy1.jpg","wb"); assert(mysql_init(&mysql)!=NULL);
if(mysql_real_connect(&mysql,NULL,"root","guchengxian","test",0,NULL,0)==NULL)
{
fprintf(stderr,"error on connect: %s\n",mysql_error(&mysql));
exit(EXIT_FAILURE);
} sprintf(buf,"insert into img(r_id,fld,blob_size) values(1,'");
sum_len=strlen("insert into img(r_id,fld,blob_size) values(1,'");
sum1_len=sum_len;
while((se_len=fread(str,1,512,fp1))>0)
{
//unsigned long mysql_real_escape_string(MYSQL *mysql, char *to, const char *from, unsigned long length)
sum1_len=sum1_len+se_len;
se_len=mysql_real_escape_string(&mysql, &buf[sum_len],str, se_len);
sum_len=sum_len+se_len;
}
printf("The souce file length is %i",sum1_len);
解决方案 »
- 为什么mysql select * from (select * from table)会有语法错误
- mysql数据库的主从订阅的时候,如何查看从机的relay-bin.00*日志内容
- 求教mySql 查詢語句(新手)
- 分类查询
- 请问可以连接到一台英特网中的MYSQL服务器吗?
- 关于MAX_JOIN_SIZE
- 为什么我安装好以后有这样的错误啊?
- 我用这个命令mysql db_name < db_backup.sql导数据库时,出现如下错误:mysql server has gone away.再检查数据库时发现只导了一部分的表,
- 如何在php的程序中实现mysqldump功能
- MYSQL 报 access denied for user root @localhost
- 皇天不负有心人 - 免费的MySQL模型建立工具!
- 很菜的问题,DBExpress连接MySQL.....
memcpy(&buf[sum_len],sql_str,strlen(sql_str));
sum_len=sum_len+strlen(sql_str)+1;
buf[sum_len]='\0'; fclose(fp1); //sprintf(sql_str,"select * from img");
if(mysql_real_query(&mysql,buf,sum_len)!=0)
{
fprintf(stderr,"error on query: %s\n",mysql_error(&mysql));
exit(EXIT_FAILURE);
} sprintf(sql_str,"select * from img");
if(mysql_real_query(&mysql,sql_str,200)!=0)
{
fprintf(stderr,"error on query: %s\n",mysql_error(&mysql));
exit(EXIT_FAILURE);
} //mysql_escape_string(p,buf,from_len)
if((res=mysql_store_result(&mysql))==NULL)
{
fprintf(stderr,"error on store: %s\n",mysql_error(&mysql));
exit(EXIT_FAILURE);
}
if((row=mysql_fetch_row(res))!=NULL)
{
printf("\n the length is len=%s \n",row[2]);
loca=64*1024;
sum_len=atoi(row[2]);
if(sum_len>loca)
{ se_len=sum_len/loca;
for(i=1;i<=se_len;i++)
{
printf("the circle recorder is %i",i);
fwrite(&(row[1][loca*(i-1)]),1,loca,fp);
}
se_len=atoi(row[2])%loca;
printf(" \n following write the tail data\n");
fwrite(&(row[1][loca*(i-1)+se_len]),1,loca,fp);
printf("before write the tail data \n");
}else
{
sum_len=fwrite(row[1],1,atoi(row[2]),fp);
} //printf("the length of writed to file is %i \n",sum_len);
//fwrite(/*buf*/ row[0],1,len,fp);
} fclose(fp);
printf("Database:\n ");
mysql_free_result(res);
mysql_close(&mysql);return 1;}
文件名 用途
/etc/my.cnf 全局选项文件
DATADIR/my.cnf 特定服务选项文件
defaults-extra-file 以 --defaults-extra-file=# 指定的选项文件
~/.my.cnf 特定用户选项文件
DATADIR 是 MySQL 数据文件目录(通常为以二进制安装时是 `/usr/local/mysql/data' ,以源码方式安装时是 `/usr/local/var' ).