• <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

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            MySQL中的二進制數據的存取步驟

            IT168 服務器學院】今天看了MySQL的文檔,也看了一些網上的文章,了解到了二進制數據在MYSQL中是如何處理的,許多例子是用在圖像數據的存取中,偏偏我要存取的不是圖像數據,不過也沒有關系,反正都是二進制數據,沒有區別.

             

              我現在總結一下在LINUX下如何用C存取二進制數據.

              

              如果是插入二進制數據,你能有如下的步驟:

              

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

              

              2,把標準的SQL語句用sprintfstrcpy之類的函數填入,直到插入二進制的地方.在下面一步插入二進制.

              

              3,用某種方法讀取二進制數據到tmpbuf[SIZE];

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

              mysql_real_escape_string()函數將buf繼續填滿(注意應在第2步中填入的字串的結束字符''開始填起,即不要有''),這個函數的原型為:

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

              其中mysql指針是有效的,已經連接成功的句柄,換句話說mysql必須是成功執行mysql_real_connect()函數返回的句柄.

             

              如果你看到了mysql_escape_string這種函數,那請不要使用它,它已經快被廢除了.

              

              4,若還有要插入的數據,繼續2,3.

              

              5,然后加上余下的SQL語言構成完整的SQL語言.

              

              6,最后你可以用mysql_real_query()來執行SQL語言了,其原型如下:

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

              

              注意:有一個要點要注意,因為二進制數據包括了許多的0或等等之類的字符,在字符串中有可能被解釋成其他的意思,所以我們用了上面mysql_real_escape_string()函數來拷貝數據,所以我們必須有變量能記錄查詢字串buf[EB]的首尾位置,這樣我們才能知道到底查詢字串有多長,在最后把該長度傳遞給mysql_real_query函數的最后一個參數.

              

              如果是查詢到二進制的數據,那也很容易,我就隨便說幾個要點:

              1,構造查詢字串.

              2,執行mysql_real_query查詢.

              3,mysql_store_result存儲結果.

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

              如果取出來的是二進制的數據,要確定它的長度,必須要用mysql_fetch_lengths函數取得其長度.

              

              沒有示例程序代碼,要是真覺得一定要有的話再找個日子寫寫吧.

             

             

            posted on 2009-08-13 11:29 肥仔 閱讀(998) 評論(0)  編輯 收藏 引用 所屬分類: 數據庫

            99久久国产主播综合精品| 久久精品午夜一区二区福利| 99久久免费国产精品| 国产真实乱对白精彩久久| 久久精品国产亚洲一区二区三区| 久久综合久久综合亚洲| 亚洲AV日韩AV永久无码久久| …久久精品99久久香蕉国产| 久久久久人妻精品一区三寸蜜桃| 久久久噜噜噜久久中文福利| 国产精品伊人久久伊人电影| 中文精品久久久久人妻不卡| 久久最新精品国产| 蜜臀av性久久久久蜜臀aⅴ麻豆| 狠狠人妻久久久久久综合| 久久人人爽人人爽人人片av高请| 久久国产精品二国产精品| 亚洲精品乱码久久久久久自慰| 久久九色综合九色99伊人| 久久精品a亚洲国产v高清不卡| 国内精品久久久久影院老司| Xx性欧美肥妇精品久久久久久 | 久久亚洲日韩精品一区二区三区| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 久久本道综合久久伊人| 久久777国产线看观看精品| 亚洲日韩中文无码久久| 久久婷婷是五月综合色狠狠| 99久久无色码中文字幕| 无遮挡粉嫩小泬久久久久久久 | 曰曰摸天天摸人人看久久久| 久久综合狠狠综合久久| 亚洲午夜久久久久久久久电影网 | 久久亚洲私人国产精品| 亚洲欧美成人综合久久久| 免费精品久久天干天干| 久久久无码精品亚洲日韩京东传媒| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 久久久久久噜噜精品免费直播| 久久精品免费大片国产大片| 办公室久久精品|