最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql LONGTEXT 類(lèi)型存儲(chǔ)大文件(二進(jìn)制也可以) (修改+調(diào)試+整理)

 更新時(shí)間:2009年07月09日 14:27:10   作者:  
MySql2.cpp : Defines the entry point for the console application.
#include "stdafx.h"
//是前一篇的姊妹篇
//代碼來(lái)自網(wǎng)絡(luò),我學(xué)習(xí)整理了一下,測(cè)試通過(guò),下面的參數(shù)
//需要設(shè)置為你自己的
//在DBMS中線要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)www,table www,file字段數(shù)據(jù)類(lèi)型用LONGTEXT即可測(cè)試
//測(cè)試文件c:\\test.iso,你可以找任何一個(gè)文件修改為即可,我找的是一個(gè)exe程序,修改為test.iso而已
//最大測(cè)試過(guò)加入文件大小為650M(一個(gè)正真的iso文件)
//注意:還要修改my.ini文件中的max_allowed_packet字段,我設(shè)置的是
復(fù)制代碼 代碼如下:

//max_allowed_packet = 1024M
//#define host "localhost" //mysql server
//#define username "root"
//#define password "674800"
//#define database "test"
//int port = 3306;
#include <Winsock2.h>
#include <stdio.h>
#include <mysql.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define host "localhost" //mysql server
#define username "root"
#define password "674800"
#define database "www"
int port = 3306;
#pragma comment(lib,"libmysql.lib")
//得到文件的大小(字節(jié)數(shù))
int get_file_size(char *path, off_t *size)
{
struct stat file_stats;
if(stat(path, &file_stats))
return -1;
*size = file_stats.st_size;
return 0;
}
int main(int argc, char *argv[])
{
char *filename=NULL;
off_t size;
MYSQL *conn=NULL;
MYSQL_RES *res_set=NULL;
MYSQL_ROW row;
MYSQL_FIELD *field=NULL;
int i, flag;
char *sql; //sql語(yǔ)句
FILE *fp;
char *buf;
int n=256;
char *end;
unsigned long *length;
/* if (argc != 2)
{
printf("Usage: %s srcfile\n", argv[0]);
exit(1);
}
*/
filename = "c:\\test.iso";
if ((get_file_size(filename, &size)) == -1) //得到文件的大小
{
perror("get file size" );
exit(1);
}
if ((buf = (char *)malloc(sizeof(char)*(size+1))) == NULL)
{
perror("malloc buf" );
exit(1);
}
if ((fp = fopen(filename, "rb" )) == NULL) //讀文件
{
perror("fopen file" );
exit(1);
}
if ((n = fread(buf, 1, size, fp)) < 0) //讀文件失敗
{
perror("fread file" );
exit(1);
}
sql = (char *)malloc(sizeof(char)*n*2+256); //2n+1+strlen(other sql)
if (sql == NULL)
{
perror("malloc sql" );
exit(1);
}
conn = mysql_init(NULL);//生產(chǎn)一個(gè)mysql對(duì)象
if (conn == NULL)
{
printf("init mysql, %s\n", mysql_error(conn));
exit(1);
}
if ((mysql_real_connect(conn, host, username, password, database, port, NULL, 0)) == NULL) //連接服務(wù)器
{
printf("connect mysql, %s\n", mysql_error(conn));
exit(1);
}
strcpy(sql, "insert into www(id, name, file) values(NULL, 'peter', " );
end = sql;
end += strlen(sql); //point sql tail
//convert NUL(ASCII 0)、'\n'、'\r'、'\''、'''、'"'和Control-Z and so on
*end++ = '\'';
end += mysql_real_escape_string(conn, end, buf, n);
*end++ = '\'';
*end++ = ')';
flag = mysql_real_query(conn, sql, (unsigned int)(end-sql));
if (flag != 0)
{
printf("insert failed, %s\n", mysql_error(conn));
exit(1);
}
if ((mysql_real_query(conn, "SELECT file FROM www where id=1", 31)) != 0)
{
printf("insert failed, %s\n", mysql_error(conn));
exit(1);
}
res_set = mysql_store_result(conn);
fclose(fp);
fp = NULL;
fp = fopen("c:\\123.iso", "wb" );
while ((row = mysql_fetch_row(res_set)) != NULL)
{
length = mysql_fetch_lengths(res_set);
for (i=0; i<mysql_num_fields(res_set); i++)
{
fwrite(row[0], 1, length[0], fp);
//printf("%s\n",row[0]);
}
}
fclose(fp);
mysql_close(conn);
free(sql);
free(buf);
sql = NULL;
return 0;
}

運(yùn)行結(jié)果:

相關(guān)文章

  • windows 安裝解壓版 mysql5.7.28 winx64的詳細(xì)教程

    windows 安裝解壓版 mysql5.7.28 winx64的詳細(xì)教程

    這篇文章主要介紹了windows 安裝解壓版 mysql5.7.28 winx64的詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • MySQL如何實(shí)現(xiàn)快速插入大量測(cè)試數(shù)據(jù)

    MySQL如何實(shí)現(xiàn)快速插入大量測(cè)試數(shù)據(jù)

    這篇文章主要介紹了MySQL如何實(shí)現(xiàn)快速插入大量測(cè)試數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MySQL錯(cuò)誤Forcing close of thread的兩種解決方法

    MySQL錯(cuò)誤Forcing close of thread的兩種解決方法

    這篇文章主要介紹了MySQL錯(cuò)誤Forcing close of thread的兩種解決方法,需要的朋友可以參考下
    2014-11-11
  • MySQL 8.0.41圖文詳細(xì)安裝教程 附安裝包

    MySQL 8.0.41圖文詳細(xì)安裝教程 附安裝包

    本文詳細(xì)介紹了MySQL 8.0.41的安裝步驟,包括下載安裝包、選擇安裝模式、設(shè)置數(shù)據(jù)庫(kù)密碼、配置系統(tǒng)環(huán)境變量以及驗(yàn)證安裝結(jié)果,適合初學(xué)者和企業(yè)級(jí)應(yīng)用,感興趣的朋友一起看看吧
    2025-03-03
  • mysql創(chuàng)建外鍵報(bào)錯(cuò)的原因及解決(can't?not?create?table)

    mysql創(chuàng)建外鍵報(bào)錯(cuò)的原因及解決(can't?not?create?table)

    這篇文章主要介紹了mysql創(chuàng)建外鍵報(bào)錯(cuò)的原因及解決方案(can't?not?create?table),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Mysql查詢優(yōu)化的一些實(shí)用方法總結(jié)

    Mysql查詢優(yōu)化的一些實(shí)用方法總結(jié)

    對(duì)于MySQL查詢語(yǔ)句來(lái)說(shuō),效率是最重要的,下面這篇文章主要給大家介紹了關(guān)于Mysql查詢優(yōu)化的一些實(shí)用方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • SQL?JOIN?子句合并多個(gè)表中相關(guān)行全面指南

    SQL?JOIN?子句合并多個(gè)表中相關(guān)行全面指南

    這篇文章主要為大家介紹了SQL?JOIN?子句合并多個(gè)表中相關(guān)行全面指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 一條 SQL 語(yǔ)句執(zhí)行過(guò)程

    一條 SQL 語(yǔ)句執(zhí)行過(guò)程

    這篇文章主要介紹了一條 SQL 語(yǔ)句執(zhí)行過(guò)程的相關(guān)資料,沒(méi)人詳細(xì)具有一的的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)和工作有所幫助
    2022-03-03
  • MYSQL復(fù)雜查詢練習(xí)題以及答案大全(難度適中)

    MYSQL復(fù)雜查詢練習(xí)題以及答案大全(難度適中)

    在我們學(xué)習(xí)mysql數(shù)據(jù)庫(kù)時(shí)需要一些題目進(jìn)行練習(xí),下面這篇文章主要給大家介紹了關(guān)于MYSQL復(fù)雜查詢練習(xí)題以及答案的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),這些練習(xí)題難度適中,需要的朋友可以參考下
    2022-08-08
  • 淺談Mysql insert on duplicate key 死鎖問(wèn)題定位與解決

    淺談Mysql insert on duplicate key 死鎖問(wèn)

    本文介紹了在并發(fā)場(chǎng)景下的 insert on duplicate key update sql 出現(xiàn)的死鎖,經(jīng)過(guò)分析發(fā)現(xiàn)這種sql確實(shí)比較容易造成死鎖,這篇文章就從分析死鎖展開(kāi),到最終如何解決這樣的問(wèn)題 分享相應(yīng)的思路,感興趣的可以了解一下
    2022-05-05

最新評(píng)論

铁岭市| 陇西县| 邢台市| 钟祥市| 丁青县| 中宁县| 云南省| 中方县| 武陟县| 崇义县| 闽侯县| 瓦房店市| 临汾市| 寻甸| 西安市| 大关县| 许昌县| 阿荣旗| 苍溪县| 文昌市| 铁岭市| 黄梅县| 宝坻区| 泸州市| 鸡东县| 石棉县| 金平| 内乡县| 平凉市| 莲花县| 景东| 龙岩市| 旬邑县| 扶沟县| 乐山市| 琼中| 西乌珠穆沁旗| 胶州市| 维西| 临漳县| 阿巴嘎旗|