• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見(jiàn)諒!~
            隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            MySQL中的二進(jìn)制數(shù)據(jù)的存取步驟

            IT168 服務(wù)器學(xué)院】今天看了MySQL的文檔,也看了一些網(wǎng)上的文章,了解到了二進(jìn)制數(shù)據(jù)在MYSQL中是如何處理的,許多例子是用在圖像數(shù)據(jù)的存取中,偏偏我要存取的不是圖像數(shù)據(jù),不過(guò)也沒(méi)有關(guān)系,反正都是二進(jìn)制數(shù)據(jù),沒(méi)有區(qū)別.

             

              我現(xiàn)在總結(jié)一下在LINUX下如何用C存取二進(jìn)制數(shù)據(jù).

              

              如果是插入二進(jìn)制數(shù)據(jù),你能有如下的步驟:

              

              1,定義一個(gè)緩沖區(qū)char buf[EB]    (What EB? Enought Big,hehe~~~)

              

              2,把標(biāo)準(zhǔn)的SQL語(yǔ)句用sprintfstrcpy之類的函數(shù)填入,直到插入二進(jìn)制的地方.在下面一步插入二進(jìn)制.

              

              3,用某種方法讀取二進(jìn)制數(shù)據(jù)到tmpbuf[SIZE];

                例如:要插入的是圖像文件數(shù)據(jù),fread(tmpbuf, 1, sizeof(tmpbuf), filestream),然后用

              mysql_real_escape_string()函數(shù)將buf繼續(xù)填滿(注意應(yīng)在第2步中填入的字串的結(jié)束字符''開(kāi)始填起,即不要有''),這個(gè)函數(shù)的原型為:

              unsigned long mysql_real_escape_string(MYSQL *mysql, char *to, const char *from, unsigned long length)

              其中mysql指針是有效的,已經(jīng)連接成功的句柄,換句話說(shuō)mysql必須是成功執(zhí)行mysql_real_connect()函數(shù)返回的句柄.

             

              如果你看到了mysql_escape_string這種函數(shù),那請(qǐng)不要使用它,它已經(jīng)快被廢除了.

              

              4,若還有要插入的數(shù)據(jù),繼續(xù)2,3.

              

              5,然后加上余下的SQL語(yǔ)言構(gòu)成完整的SQL語(yǔ)言.

              

              6,最后你可以用mysql_real_query()來(lái)執(zhí)行SQL語(yǔ)言了,其原型如下:

              int mysql_real_query(MYSQL *mysql, const char *query, unsigned long length)

              

              注意:有一個(gè)要點(diǎn)要注意,因?yàn)槎M(jìn)制數(shù)據(jù)包括了許多的0或等等之類的字符,在字符串中有可能被解釋成其他的意思,所以我們用了上面mysql_real_escape_string()函數(shù)來(lái)拷貝數(shù)據(jù),所以我們必須有變量能記錄查詢字串buf[EB]的首尾位置,這樣我們才能知道到底查詢字串有多長(zhǎng),在最后把該長(zhǎng)度傳遞給mysql_real_query函數(shù)的最后一個(gè)參數(shù).

              

              如果是查詢到二進(jìn)制的數(shù)據(jù),那也很容易,我就隨便說(shuō)幾個(gè)要點(diǎn):

              1,構(gòu)造查詢字串.

              2,執(zhí)行mysql_real_query查詢.

              3,mysql_store_result存儲(chǔ)結(jié)果.

              4,mysql_fetch_row取出一條記錄處理.

              如果取出來(lái)的是二進(jìn)制的數(shù)據(jù),要確定它的長(zhǎng)度,必須要用mysql_fetch_lengths函數(shù)取得其長(zhǎng)度.

              

              沒(méi)有示例程序代碼,要是真覺(jué)得一定要有的話再找個(gè)日子寫(xiě)寫(xiě)吧.

             

             

            posted on 2009-08-13 11:29 肥仔 閱讀(1003) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)庫(kù)

            中文字幕亚洲综合久久菠萝蜜 | 99国内精品久久久久久久| 久久精品国产第一区二区三区| 久久人妻少妇嫩草AV无码专区| 久久精品国产99久久无毒不卡| 国产精品毛片久久久久久久| 久久嫩草影院免费看夜色| 人妻久久久一区二区三区| 国产午夜精品理论片久久 | 国产精品一久久香蕉国产线看观看| 亚洲国产精久久久久久久| 97精品依人久久久大香线蕉97| 2021久久精品国产99国产精品| 亚洲国产成人久久一区WWW| 99国产精品久久久久久久成人热| 欧美精品福利视频一区二区三区久久久精品 | 久久综合久久综合久久| 久久久久亚洲av综合波多野结衣| 国产成人久久激情91| 久久www免费人成看片| 久久精品成人欧美大片| 国产精品99精品久久免费| 精品久久久久久国产| 久久人人爽人人爽人人片AV东京热 | 久久久久久夜精品精品免费啦 | 久久精品国产亚洲AV香蕉| 欧美麻豆久久久久久中文| 国产女人aaa级久久久级| 精品久久香蕉国产线看观看亚洲| 老色鬼久久亚洲AV综合| 精品久久人人爽天天玩人人妻| 四虎久久影院| 亚洲国产天堂久久综合| 午夜精品久久久久| 中文精品99久久国产| 亚洲午夜无码久久久久小说| 亚洲精品午夜国产va久久| 久久精品青青草原伊人| 日韩人妻无码精品久久免费一| 久久水蜜桃亚洲av无码精品麻豆 | 精品一久久香蕉国产线看播放|