匿名
Lv 7
匿名 asked in 電腦與網際網路程式設計 · 1 decade ago

如何將Array放入MySQL?

我開了一個 int array,

請問MySQL的資料類型(Data Type)是什麼才能儲存這個array?

Update:

如果用implode() convert an array to a string,請問string會變成什麼?

因為我的array全部是int,不過有差不多6000千個int,如果我請它轉成string,MySQL能否承受得到?

2 Answers

Rating
  • CY
    Lv 5
    1 decade ago
    Favorite Answer

    的確 MySQL 沒有 data type for array.

    可以用php functions: serialize() and unserialize()

    存入前先將 array serialize

    取出後 unserialize data 即得回原 array

    如果確定 data 全是 int

    用 implode() -- convert an array to a string

    and

    explode() -- convert a string to an array

    可能比較省空間

    2009-09-08 07:14:27 補充:

    > 如果用implode() convert an array to a string,請問string會變成什麼?

    $intArr = array(1,2,3,4);

    // 以逗號分隔, 其他字符亦可 但數字不宜

    $strToStore = implode(",",$intArr);

    echo $strToStore; // 輸出 1,2,3,4

    implode() 將array中的數字 以分隔字符串起 組成string

    2009-09-08 07:40:40 補充:

    >有差不多6000千個int,如果我請它轉成string,MySQL能否承受得到?

    比較 $strToStore 的長度 與 MySQL欄位容量 即可知該選何種data type

    或MySQL能否承受 (最長的LongText 欄位可存約 2^32 bytes. )

    //$strToStore 的長度 可選一代表性array 來測試

    $strLength = strlen($strToStore);

    MySQL欄位容量 (version 5.0):

    http://dev.mysql.com/doc/refman/5.0/en/storage-req...

  • YOGO
    Lv 5
    1 decade ago

    MySQL沒有這種類型吧,若你要將陣列存到MySQL欄位中可參考這篇文章,原理是相同的

    [教學]PHP多個核取方塊如何放到同一個欄位

    http://blog.yogo.tw/2009/07/php.html

    歡迎光臨YOGO生活誌 http://blog.yogo.tw/

    2009-09-07 21:13:01 補充:

    你自己參考一下MySQL欄位型態

    http://dyna.hcc.edu.tw/php5/basic/courses/class4_1...

    如果連LongText型態都無法儲存你的資料的話,那你的資料量也真的太大了

    Source(s): 自己, 自己
Still have questions? Get your answers by asking now.